UDF > Date >


_Date_Time_GetTimeZoneInformation

Obtient les param�tres du fuseau horaire actuel

#include <Date.au3>
_Date_Time_GetTimeZoneInformation ( )

Valeur de retour

Retourne un tableau (array) au format suivant:
[0] - Param�tre d'heure d'�t�. Peut �tre un des suivants :
  -1 - �chec
   0 - L'heure d'�t� n'est pas utilis�e avec le fuseau horaire courant
   1 - L'heure d'�t� fonctionne comme l'heure normale
   2 - L'heure d'�t� fonctionne pendant l'�t�

[1] - Le d�calage en cours pour la conversion de l'heure locale sur cet ordinateur.
Le d�calage est la diff�rence en minutes entre le temps universel coordonn� (UTC) et l'heure locale.
Toutes les conversions entre l'heure UTC et l'heure locale utilisent la formule suivante: UTC = heure locale + d�calage

[2] - La description pour l'heure d'hiver.

[3] - Une structure $tagSYSTEMTIME qui contient les date et heure locales lorsque le passage de l'heure d'�t� � heure d'hiver se produit.

[4] - La valeur du d�calage � utiliser lors du changement d'heure locale qui se produit pendant l'heure d'hiver.
Cette valeur est ajout�e � la valeur du d�calage pour former le d�calage utilis� pendant l'heure d'hiver.
Dans la plupart des fuseaux horaires, cette valeur est z�ro.

[5] - La description pour l'heure d'�t�

[6] - Une structure $tagSYSTEMTIME qui contient les date et heure locales lorsque le passage de l'heure d'hiver � l'heure d'�t� se produit.

[7] - La valeur de d�calage � utiliser lors du changement d'heure locale qui se produit pendant l'heure d'�t�.
Cette valeur est ajout�e � la valeur du d�calage pour former le d�calage utilis� pendant l'heure d'�t�. Dans la plupart des fuseaux horaires cette valeur est -60.

Remarques

Dans la structure $tagSYSTEMTIME, les membres wHour et wMinute repr�sentent le changement d'heure, le membre wDayOfWeek du jour de la semaine correspondant, et le membre wDay indiquant l'occurence du jour de la semaine dans le mois (1 � 5, o� 5 indique l'occurrence finale au cours du mois si ce jour de la semaine ne r�p�te pas 5 fois).

En utilisant cette notation, indiquez 02:00 pour le premier dimanche d'avril, comme suit: wHour = 2, wMonth = 4, wDayOfWeek = 0, wDay = 1. Indiquez 02:00 pour le dernier jeudi d'octobre comme suit: wHour = 2, wMonth = 10, wDayOfWeek = 4, wDay = 5.

En relation

$tagSYSTEMTIME, _Date_Time_SetTimeZoneInformation

Exemple

;~ #RequireAdmin
; L'API Windows "SetTimeZoneInformation" n�cessite "SeTimeZonePrivilege" aussi vous devez utiliser #RequireAdmin

#include <Date.au3>
#include <GUIConstantsEx.au3>
#include <MsgBoxConstants.au3>
#include <WinAPIError.au3>
#include <WindowsConstants.au3>

Global $g_idMemo

Example()

Func Example()
    Local $aOld, $aNew

    ; Cr�e la GUI
    GUICreate("Temps", 400, 300)
    $g_idMemo = GUICtrlCreateEdit("", 2, 2, 396, 296, $WS_VSCROLL)
    GUICtrlSetFont($g_idMemo, 9, 400, 0, "Courier New")
    GUISetState(@SW_SHOW)

    ; Affiche les informations de fuseau horaire actuel
    $aOld = _Date_Time_GetTimeZoneInformation()
    ShowTimeZoneInformation($aOld, "Actuel")

    ; D�finit les nouvelles informations de fuseau horaire
    If Not _Date_Time_SetTimeZoneInformation($aOld[1], "A3L CST", $aOld[3], $aOld[4], "A3L CDT", $aOld[6], $aOld[7]) Then
        MsgBox($MB_SYSTEMMODAL, "Erreur", "Impossible de d�finir le fuseau horaire syst�me" & @CRLF & @CRLF & _WinAPI_GetErrorMessage(@extended))
        Exit
    EndIf

    ; Affiche les nouvelles informations de fuseau horaire
    $aNew = _Date_Time_GetTimeZoneInformation()
    ShowTimeZoneInformation($aNew, "New")

    ; R�initialise les informations de fuseau horaire d'origine
    _Date_Time_SetTimeZoneInformation($aOld[1], $aOld[2], $aOld[3], $aOld[4], $aOld[5], $aOld[6], $aOld[7])

    ; Affiche les informations de fuseau horaire actuel
    $aOld = _Date_Time_GetTimeZoneInformation()
    ShowTimeZoneInformation($aOld, "Reset")

    ; Boucle jusqu'� ce que l'utilisateur quitte.
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
EndFunc   ;==>Example

; �crit une ligne dans le contr�le m�mo
Func MemoWrite($sMessage)
    GUICtrlSetData($g_idMemo, $sMessage & @CRLF, 1)
EndFunc   ;==>MemoWrite

; Affiche les informations de fuseau horaire
Func ShowTimeZoneInformation(ByRef $aInfo, $sComment)
    MemoWrite("***************************** " & $sComment & " *****************************")
    MemoWrite("R�sultat..................... : " & $aInfo[0])
    MemoWrite("D�calage actuel.............. : " & $aInfo[1])
    MemoWrite("Nom standard................. : " & $aInfo[2])
    MemoWrite("Date/heure standard.......... : " & _Date_Time_SystemTimeToDateTimeStr($aInfo[3]))
    MemoWrite("D�calage standard............ : " & $aInfo[4])
    MemoWrite("Nom pour l'heure d'�t�....... : " & $aInfo[5])
    MemoWrite("Date/heure pour l'heure d'�t� : " & _Date_Time_SystemTimeToDateTimeStr($aInfo[6]))
    MemoWrite("D�calage pour l'heure d'�t�.. : " & $aInfo[7])
EndFunc   ;==>ShowTimeZoneInformation