comment faire un decalage horaire
comment faire un decalage horaire
salut je sui sactuellemnt en train de faire une horlogemultifonction ( je la passerai iune fois fini ) j'ai bien avancer maisil me reste a faire un decalage horaire si quelqun savait coment faire ...
-
- Messages : 1500
- Inscription : jeu. 25/mars/2004 11:23
- Localisation : Sophia Antipolis (Nice)
- Contact :
AddDate() ???
Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
Participez à son extension: ajouter vos programmes et partagez vos codes !
@scaraber,
Il faut en premier tout gérer en interne en temps UTC, ou GMT, et disposer d'une table des décalages en fonction de la zone horaire.
Pour démarrer, voici un bout de code avec les API (valable sous Windows NT / XP), qui permet de synchroniser le temps système du poste de travail, de récupérer le temps UTC et le temps local, ainsi que les informations de zone locale.
A noter que la fonction OS net time est un joli raccourci pour accéder à la synchro ntp. Avant il fallait se taper l'appel au serveur et la négociation pour obtenir la synchro.
Il faut en premier tout gérer en interne en temps UTC, ou GMT, et disposer d'une table des décalages en fonction de la zone horaire.
Pour démarrer, voici un bout de code avec les API (valable sous Windows NT / XP), qui permet de synchroniser le temps système du poste de travail, de récupérer le temps UTC et le temps local, ainsi que les informations de zone locale.
A noter que la fonction OS net time est un joli raccourci pour accéder à la synchro ntp. Avant il fallait se taper l'appel au serveur et la négociation pour obtenir la synchro.
Code : Tout sélectionner
Procedure.s Format_Internal_Time(Address.l, Separator.s)
*Time.SYSTEMTIME = Address
Debug "Address = " + Str(Address)
Result.s = ""
sDayOfWeek.s = "Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday"
Result.s = "Year : " + Str(*Time\wYear) + Separator
Result + "Month : " + Str(*Time\wMonth) + Separator
Result + "Day of week : " + StringField(sDayOfWeek, *Time\wDayOfWeek + 1, ",") + Separator
Result + "Day : " + Str(*Time\wDay) + Separator
Result + "Hour : " + Str(*Time\wHour) + Separator
Result + "Minute : " + Str(*Time\wMinute) + Separator
Result + "Second : " + Str(*Time\wSecond) + Separator
Result + "Millisecond : " + Str(*Time\wMilliseconds)
ProcedureReturn Result
EndProcedure
;
; sntp NT / XP synchro
;
RunProgram("net", "time /setsntp:pool.ntp.org", "", 1 | 2)
;
; Here you get system tme (UTC time)
;
GetSystemTime_(SystemTime.SYSTEMTIME)
sST.s = Format_Internal_Time(SystemTime, Chr(10))
;
; Here you get local time
;
GetLocalTime_(Local.SYSTEMTIME)
sLT.s = Format_Internal_Time(Local, Chr(10))
;
; Here you get the local time time zone name
;
GetTimeZoneInformation_(TimeZoneInfo.TIME_ZONE_INFORMATION)
sStandardName.s = ""
i = 0
While TimeZoneInfo\StandardName[i] <>0 And i <= 32
sStandardName + Chr(TimeZoneInfo\StandardName[i])
i + 1
Wend
sInfo.s = "Time zone : " + sStandardName + Chr(10)
sInfo + "UTC + " + Str(TimeZoneInfo\DaylightDate\wHour)
MessageRequester("Time information : ", sST + Chr(10) + Chr(10) + sLT + Chr(10) + Chr(10) + sInfo, #PB_MessageRequester_Ok)
End
Mon avatar reproduit l'image de 4x1.8m présentée au 'Salon international du meuble de Paris' en janvier 2004, dans l'exposition 'Shades' réunisant 22 créateurs autour de Matt Sindall. L'original est un stratifié en 150 dpi.