|
La procédure suivante permet de retrouver le
décalage horaire par rapport à l'heure GMT En 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)
| |
|