UDF > Date >


_Date_Time_SetTimeZoneInformation

Définit les paramètres du fuseau horaire courant

#include <Date.au3>
_Date_Time_SetTimeZoneInformation ( $iBias, $sStdName, $tStdDate, $iStdBias, $sDayName, $tDayDate, $iDayBias )

Paramètres

$iBias Le décalage actuel pour 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
$sStdName La description pour l'heure d'hiver
$tStdDate Une structure $tagSYSTEMTIME qui contient une date et une heure locale lorsque le passage à l'heure d'hiver se produit.
$iStdBias La valeur de 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.
$sDayName La description pour l'heure d'été
$tDayDate Une structure $tagSYSTEMTIME qui contient une date et une heure locale lorsque le passage heure d'hiver à l'heure d'été se produit.
$iDayBias 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.

Valeur de retour

Succès: Retourne True
Échec: Retourne False

Remarques

Pour sélectionner le jour approprié dans le mois, définissez le membre wYear à zéro, les membres wHour et wMinute à l'heure de transition, le membre wDayOfWeek pour le jour approprié, 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_GetTimeZoneInformation

Exemple

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

; Sous Vista, l'API Windows « SetTimeZoneInformation » peut être rejetée en raison de la sécurité du système

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_GetLastErrorMessage())
        Exit
    EndIf

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

    ; 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, "Réinitialisé")

    ; 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