BastienL21
Messages postés172Date d'inscriptiondimanche 10 décembre 2000StatutMembreDernière intervention12 février 2009
-
7 mai 2008 à 22:18
racpp -
10 mai 2008 à 21:55
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
BastienL21
Messages postés172Date d'inscriptiondimanche 10 décembre 2000StatutMembreDernière intervention12 février 20092 8 mai 2008 à 10:17
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?
cs_jfrancois
Messages postés482Date d'inscriptionvendredi 26 août 2005StatutMembreDernière intervention 5 décembre 20092 8 mai 2008 à 10:52
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)
cs_jfrancois
Messages postés482Date d'inscriptionvendredi 26 août 2005StatutMembreDernière intervention 5 décembre 20092 8 mai 2008 à 11:50
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 !
BastienL21
Messages postés172Date d'inscriptiondimanche 10 décembre 2000StatutMembreDernière intervention12 février 20092 8 mai 2008 à 19:56
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
BastienL21
Messages postés172Date d'inscriptiondimanche 10 décembre 2000StatutMembreDernière intervention12 février 20092 10 mai 2008 à 16:53
Le plus bizard est que, quand o écrit le nom d'une structure (ici tm) pour afficher en printf, il me propose via un mini menu déroulant les variable qui sont dedans (tm_hour; tm_min; tm_sec, etc...), preuve qu'il la trouve bien cette structure!
Mais il ne veut pas compiler (C::B dit tjs à la compilation: undeclared (first in this function))... snif,quelqu'un aurait-il une solution?
BastienL21
Messages postés172Date d'inscriptiondimanche 10 décembre 2000StatutMembreDernière intervention12 février 20092 10 mai 2008 à 20:40
Bonsoir JF,
Et comment peut-on y remédier si il s'agit de cela?
J'ai essayé de le compiler sur une autre bécane sous DevC++ :
Mêmes erreurs à la compilation
BastienL21
Messages postés172Date d'inscriptiondimanche 10 décembre 2000StatutMembreDernière intervention12 février 20092 10 mai 2008 à 21:21
D'accord, merci beaucoup.
Il ne me reste plus qu'à modifier mon programme, ce qui risque de me pendre du temps...(+ ou - 3000 lignes) et de ne pas être pas très agréable sur un écran d'à peine 15".
bref. bonne soirée à tous