begin process at 2008 05 12 02:35:57
1 170 129 membres
34 nouveaux aujourd'hui
13 956 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Heure d'été [ Windows / System ] (BastienL21)

Heure d'été le 07/05/2008 22:18:28

BastienL21
Bonjour tout le monde,
Etant en train de programmer un mini-OS (tournant sous Windows XP), je suis confronté à un problème qui ne doit pas être très difficile à contourner mais auquel je ne trouve solution.
Depuis le passage en heure d'été, mon PC y est donc passé tout seul mais surprise, en démarrant mon programme qui reste en heure d'hiver.
Ma question est donc de savoir si qulqu'un connait un solution pour récupérer l'heure correct
 (sans faire H % 86400 / 3600 + 1 +1).
(je récupère l'heure via le code :
        //inclure #include <time.h>
          long H;
          time(&H);            // Recupere l'heure
    printf("%ld heure, ", H % 86400 / 3600 + 1);
    printf("%ld minute, ", H%3600 / 60);
    printf("%ld secondes.", H%60);
)

                                 Cordialement,
                                             Bastien



Re : Heure d'été le 08/05/2008 00:01:24

jfrancois
Bonsoir,

Fonction localtime() pour récupérer l'heure locale.

Jean-François


Re : Heure d'été le 08/05/2008 10:17:48

BastienL21
Merci Jean-Francois mais comment fait-on pour récupérer l'heure à partir de ceci?
Si je met:

  long h = 0;
localtime(&h);
    printf("%ld", h);

il me retourne la valeur de base de h (si j'initialise h à 2, la console m'affiche 2...)
Pourais-tu mettre un petit bout de code qui permet de l'afficher STP?

Cordialement,
               Bastien

Re : Heure d'été le 08/05/2008 10:52:39

jfrancois

Voilà le nécessaire pour afficher la date et l'heure en heures locales :

#include <stdio.h>
#include <time.h>

int main(void)
{
   static const char* aszJours[] =
   {"Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi"};

   // --- Lire l'horloge et la convertir en heure locale
   time_t Time = time(NULL);
   tm* pTM = localtime(&Time);

   // --- Date
   printf("\n%s %02d/%02d/%04d (jour %d)\n"
         ,aszJours[pTM->tm_wday] // jour de la semaine (0=dim à 6=sam)
         ,pTM->tm_mday           // jour dans le mois (1 à 31)
         ,pTM->tm_mon  + 1       // mois (0 à 11)
         ,pTM->tm_year + 1900    // année / 1900
         ,pTM->tm_yday + 1);     // jour dans l'année (0 à 366)

   // --- Horaire
   printf("%02d:%02d:%02d"
         ,pTM->tm_hour           // heures (0 à 23)
         ,pTM->tm_min            // minutes (0 à 59)
         ,pTM->tm_sec);          // secondes (0 à 59)

   // --- Heure d'été/d'hiver
   if (pTM->tm_isdst > 0)
      printf(" (heure d'ete)");
   else if (pTM->tm_isdst == 0)
      printf(" (heure d'hiver)");
   else
      printf(" (heure d'ete/hiver inconnu)");
   printf("\n\n");
   return 0;
}

Ce qui donne :

Jeudi 08/05/2008 (jour 129)
10:49:05 (heure d'ete)

Jean-François


Re : Heure d'été le 08/05/2008 10:59:42

BastienL21
Merci beaucoup mais Code::Blocks m'affiche les messages suivant à la compilation:

error 'tm' undeclared (first in this fonction)
error 'pTM' undeclared (first in this fonction)


Cordialement,
                    Bastien

Re : Heure d'été le 08/05/2008 11:50:42

jfrancois
J'utilise Microsoft Visual C++ 6.0 mais j'ai aussi Code::Blocks 8.02 sous lequel je viens de tester ce petit programme tel quel : aucune erreur, aucun warning et résultat exact !

Jean-François


Re : Heure d'été le 08/05/2008 12:02:24

BastienL21
Je pense qu'il faudrait que je télécharge une version plus récente de Code: :Blocks pour commencer  (Je suis en 1.0 RC2 (!!!)) et que je réessaye.
Cordialement,
                    Bastien

Re : Heure d'été le 08/05/2008 12:07:57

jfrancois
Oui en effet, ce sont les débuts de Code::Blocks et il ne devait pas tout y avoir !

Jean-François


Re : Heure d'été le 08/05/2008 12:10:12

BastienL21
Merci beaucoup de votre aide,
 je vous tiendrais au courant lorsque j'aurais un version plus récente

Cordialement,
          Bastien
                    

Re : Heure d'été le 08/05/2008 19:56:53

BastienL21
Bonsoir,
J'ai installé  C::B 8.02!! mais .... Toujours ces mêmes message d'erreurs!! :-(
Quel type de variable est-ce senser être ? (car en effet je ne vois pas où elles sont déclarer); j'ai essayé de les déclarer, en type long... mais dans ces cas j'ai droit à "invalide value in assignement" à la compilation

Cordialement,
             Bastien
 


[Page 1 Page 2 Page 3]
Classé sous : solution, printf, heure, ld

Participer à cet échange

Appels d'offres

Pub



CalendriCode

Mai 2008
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS