Convertir un datetime en GMT (en tenant compte de l'heure d'été).
# 0000000482
ajouté le 19/09/2007 11:17:05 et modifié le 19/09/2007
consulté 8513 fois
Niveau
débutant
Version(s) Foxpro : VFP 9.0 VFP 8.0 VFP 7.0
Description
Convertit un datetime au format GMT en tenant compte de l'heure d'hiver/été.
procedure DecalageGmt(tDateTime asDateTime) asInteger local dDate, tMars, tOctobre *---> Recherche du dernier dimanche de mars à 3h du matin
m.dDate = Date(Year(m.tDateTime), 3, 31)
m.tMars = Dtot(m.dDate - Dow(m.dDate, 2) % 7) + 3 * 3600 *---> Recherche du dernier dimanche d'octobre à 2h du matin
m.dDate = Date(Year(m.tDateTime), 10, 31)
m.tOctobre = Dtot(m.dDate - Dow(m.dDate, 2) % 7) + 2 * 3600 returnIif(Between(m.tDateTime, m.tMars, m.tOctobre), 2, 1) endproc&& DecalageGmt
Commentaires
le 19/09/2007, FredA a écrit : où as tu trouver cet appel de l'API GetTimeZoneInformation sans parametre? MSDN ne la donne pas? bon boulot en tous cas.
le 19/09/2007, FredA a écrit : de plus, un essai en C++ de GetTimeZoneInformation sans parametre n'est pas connu, et en passant NULL, bien sur, provoque une C0..05. Je suis perplexe pour le moins <s>
le 19/09/2007, Anatole a écrit : Il y a un bug dans cette procédure car le différencielle d'heure est sur la date courante à cause GetTimeZoneInformation.
Je suis en train de la corriger.
le 19/09/2007, FredA a écrit : pour info, tu as l'appel normalisé (avec parametre) ici : http://www.atoutfox.org/articles.asp?ACTION=FCONSULTER&ID=0000000476 un autre moyen est de passer par les structures SYSTEMTIME et les GetLocalTime et GetSystemTime
le 19/09/2007, Anatole a écrit : Elle est corrigée à présent
le 20/09/2007, Robert Plagnard a écrit : Frédéric et Anatole, vos commentaires sont surréalistes ... je ne vois pas de "GetTimeZoneInformation" dans ces lignes de code ??
le 21/09/2007, FredA a écrit : Anatole utilisait cet API dans la première version de ce code. Il a ensuite detecté une erreur. La correction a entrainé la suppression de cet API. Voilà l'explication.
où as tu trouver cet appel de l'API GetTimeZoneInformation sans parametre?
MSDN ne la donne pas?
bon boulot en tous cas.