2009-03-09 6 views
0

Un programme je l'ai écrit il y a environ quatre ans, qui obtient la date et l'heure comme suit:Problème dans l'heure d'été Commutateur

get_the_date_and_time(char *string) 
{ 
    struct tm *now; 
    time_t lt; 
    lt = time(NULL); 
    now = localtime(&lt); 
    sprintf(string,asctime(now)); 
} 

Il retourne le temps d'une heure de retard depuis le passage à l'heure d'été.

En changeant la date de mon système au 5 avril, j'obtiens le bon moment.

Nous avons fait un travail de contour pour le projet concerné; c'est juste un heads-up.

Je suppose que les mods de l'heure d'été de Microsoft pour l'extension de l'étalement de l'heure avancée sont, s'ils ne sont pas cassés, quelque peu endommagés.

Répondre

3

Il semble que votre système ne soit pas au courant de la modification de l'heure d'été aux États-Unis en raison de l'Energy Policy Act de 2005 (made DST a month longer from 2007 onwards).

Quelle version de Windows utilisez-vous et l'avez-vous mise à jour avec Windows Update?

EDIT: En outre, cette liaison est-elle statique ou dynamique, et avez-vous reconstruit depuis l'application de tous les correctifs, etc? Bien que j'aurais l'espoir il obtient l'information de l'OS, il est possible que si vous liez statiquement une partie de celui-ci pourrait être cuit dans votre exécutable. (Ick.)

+0

Quand il a dit "je soupçonne les mods de l'heure avancée de Microsoft", j'ai pris cela comme signifiant qu'il avait déjà appliqué les correctifs. –

+2

C'est possible - cela aiderait vraiment si la question pouvait être clarifiée. Même connaître l'OS serait un bon début ... –

Questions connexes