OVH Cloud OVH Cloud

heure d'été / heure d'hiver

1 réponse
Avatar
gael_
Bonjour,
J'ai un réseau (Win2k Server) et 12 postes (clones, identiques en Win XP)

Tous les postes et le serveur se sont mis automatiquement à l'heure d'été,
SAUF UN.

Je le mets manuellement à l'heure d'été via panneau config, et quelques
minutes après il se remet à l'heure d'hiver !

Je ne comprends pas. Et c'est très gênant pour des appli comme le pgm
financier Isabel.

Une idée ?

Merci,

_Gaël_

1 réponse

Avatar
Jean-Claude BELLAMY
Dans le message news: ,
gael_ s'est ainsi exprimé:

Bonjour,
J'ai un réseau (Win2k Server) et 12 postes (clones, identiques en
Win XP)

Tous les postes et le serveur se sont mis automatiquement à l'heure
d'été, SAUF UN.

Je le mets manuellement à l'heure d'été via panneau config, et
quelques minutes après il se remet à l'heure d'hiver !

Je ne comprends pas. Et c'est très gênant pour des appli comme le pgm
financier Isabel.

Une idée ?


A part un "alien" sournois qui viendrait bidouiller ta BDR la nuit, je ne
vois pas.

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

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTimeZoneInformation

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
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionTime
Zonesxxxxxxx
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/developp/econo/textes/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
*