Afficher un message
Vieux 30/10/2006, 10h59   #2
Jean-Claude BELLAMY
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Passage en heure d'hiver

Dans le message :E6D658F0-FACF-472A-95D1-C68820DCC80D@microsoft.com,
EF <EF@discussions.microsoft.com> a pris la peine d'écrire ce qui suit :
> Bonjour,
>
> je souhaiterais avoir une petite précison par rapport au passage en
> heure d'hiver (et heure d'été).
> Sur Windows 2003 Server, à quelle heure intervient effectivement ce
> changement ?


Comme c'est prévu par la "loi" !
- à 3h du matin pour le passage à l'heure d'hiver,
- à 2h du matin pour le passage à l'heure d'été.

Pour info, les paramètres d'heure sont stockés ici :

HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInfo rmation

L'activation du système d'heure d'été est stocké dans l'entrée
"DisableAutoDaylightTimeSet"
de type REG_WORD
valeur :
0x1 -> observation d'heure d'été non appliquée
0x0 (ou absente) -> observation d'heure d'été appliquée

En ce qui concerne la définition des mois de changement d'heure,
c'est stocké dans les entrées :
"StandardStart"
et
"DaylightStart".
Elles sont de type REG_BINARY, et contiennent 16 octets, qui représentent
une structure "SYSTEMTIME" :

typedef struct _SYSTEMTIME {
WORD wYear;
WORD wMonth;
WORD wDayOfWeek;
WORD wDay;
WORD wHour;
WORD wMinute;
WORD wSecond;
WORD wMilliseconds;

} SYSTEMTIME, *PSYSTEMTIME;


Le n° de mois de changement d'heure est stocké dans le 3ème octet
(= octet de poids faible du champ wMonth)

- heure d'hiver :
"StandardStart"
-> 3ème octet = 0x0A (= actuellement octobre)

- heure d'été :
"DaylightStart"
-> 3ème octet = 0x03 (= actuellement mars)

Les valeurs de ces paramètres (0x03, 0x0A) sont stockées dans la clef
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones\xxxxxxx
Avec, pour l'Europe occidentale, xxxxx = "Romance Standard Time"
L'entrée contenant les valeurs numériques s'appelle
"TZI"
et est de type REG_BINARY
(à partir de l'offset 0x0C)

par contre, dans TimeZoneInformation, je ne trouve pas la correspondance
avec l'heure de passage.

En effet,
(http://www.industrie.gouv.fr/energie...es/se_heur.htm)
"depuis 1998 pour l'ensemble des pays de l'Union
Européenne, le passage à l'heure d'été intervient
le dernier dimanche de mars à 2 heures du matin
et le passage à l'heure d'hiver intervient le dernier
dimanche d'octobre à 3 heures du matin."

On retrouve bien :
la valeur 0x02 dans DaylightStart
la valeur 0x03 dans StandardStart
mais PAS AU BON ENDROIT !
D'après la structure SYSTEMTIME, ce devrait être au 9ème octet, or c'est au
7ème dans la BDR
Un mystère microsoftien !!! ;-)


--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP]
http://www.bellamyjc.org ou http://jc.bellamy.free.fr


  Réponse avec citation
 
Page generated in 0,06645 seconds with 9 queries