|  | 
La procédure suivante permet de retrouver le 
décalage horaire par rapport à l'heure GMTEn résumé : sur quel 
fuseau horaire on se trouve ?
 
 
 
 PROCEDURE PRIVÉE FuseauHoraire(sFormat="*HH:MM")
 
 SYSTEMTIME est une 
structure
 nAnnée est un entier sur 2
 nMois est un entier sur 2
 nJourSemaine est un entier sur 2
 nJour est un entier sur 2
 nHeure est un entier sur 2
 nMinute est un entier sur 2
 nSeconde est un entier sur 2
 nMillisecondes est un entier sur 2
 FIN
 
 
 sChaineRetour est une chaîne
 MaDateSystème est un 
SYSTEMTIME
 MonHeure est une Heure
 nDifférence est un entier
 
 // Appel de l'api pour récupérer l'heure en GMT
 API("kernel32.dll","GetSystemTime",&MaDateSystème)
 
 // 
Affectation de la variable de type heure
 MonHeure..Heure = MaDateSystème:nHeure
 MonHeure..Minute = 
MaDateSystème:nMinute
 MonHeure..Seconde = 
MaDateSystème:nSeconde
 MonHeure..Milliseconde = 0
 
 // Calcul 
de la différence entre les deux
 nDifférence = 
HeureDifférence(MonHeure,HeureSys)
 
 
 // Si 
la différence est positive,
 SI nDifférence > 
0 ALORS
 // on est donc en "+" par 
rapport à l'heure GMT
 sChaineRetour = Remplace(sFormat,"*","+")
 SINON
 // on est en "-" par 
rapport à l'heure GMT
 sChaineRetour = Remplace(sFormat,"*","-")
 FIN
 
 // On remplace les heures (HH dans le format) par le nombre d'heures de 
différence
 // Attention 
la différence est donnée en millisecondes donc une heure = 360000 
ms
 sChaineRetour = 
Remplace(sChaineRetour,"HH",NumériqueVersChaîne(nDifférence/360000, "02d"))
 
 // On 
remplace les minutes (MM dans le format) par le nombre de minutes de 
différence.
 // Attention 
la différence est donnée en millisecondes donc une minute = 6000 
ms
 sChaineRetour = 
Remplace(sChaineRetour,"MM",NumériqueVersChaîne(modulo(nDifférence,360000)/6000, "02d"))
 
 
 // Ici 
sChaineRetour = "+01:00"
 Info(sChaineRetour)
 
 
 
 
 
 
 |  |  |