Récupérer des informations régionales de date (décalage horaire par exemple)
# 0000000476
ajouté le 11/09/2007 16:57:24 et modifié le 11/09/2007
consulté 9424 fois
Niveau
débutant
Petite contribution pour l'exploitation de l'API GetTimeZoneInformation. L'exemple récupère l'information de décalage horaire par rapport à l'heure GMT (ou UTC).
Code source :
? GetGMTBias()
#DEFINE TIME_ZONE_ID_DAYLIGHT 2
FUNCTION StrToLong PARAMETERS lcLongstr PRIVATE i, lnRetval
lnRetval = 0 FOR i = 0 TO 24 STEP 8
lnRetval = lnRetval + (ASC(lcLongstr) * (2^i))
lcLongstr = RIGHT(lcLongstr, LEN(lcLongstr) - 1) NEXT RETURN lnRetval
liBias = liBias * -1 &&Bias donne la convertion local->gmt, il faut l'inverse
IF liBias!=0 IF liBias>0
res = res + " +"
ELSE
res = res + " -"
liBias = liBias * -1 ENDIF
diffH=INT(liBias / 60)
diffM=liBias-(60*diffH)
res = res + PADL(ALLTRIM(STR(diffH)), 2, '0') IF diffM!=0
res = res + padl(ALLTRIM(STR(diffM)), 2, '0') ELSE
res = res + "00" ENDIF ENDIF CLEARDLLS"GetTimeZoneInformation" RETURN res
Commentaires
le 19/03/2008, Francis Faure a écrit : Merci Fred pour cette contribution ! je viens de me plonger dedans pour vfpwinsock et examiné l'API : GetTimeZoneInformation avec mes tests j'ai pu voir un disfonctionnement dans ton code pour le cas où le fuseau horaire est en GMT +0 (Londres par exemple). D'autre part la fonction StrToLong peut être remplacée par un buf2word. Je poste ma version similaire pour cette fonction Cordialement Francis
Merci Fred pour cette contribution !
je viens de me plonger dedans pour vfpwinsock et examiné l'API : GetTimeZoneInformation
avec mes tests j'ai pu voir un disfonctionnement dans ton code pour le cas où le fuseau horaire est en GMT +0 (Londres par exemple).
D'autre part la fonction StrToLong peut être remplacée par un buf2word.
Je poste ma version similaire pour cette fonction
Cordialement
Francis