Blem dans le Time

cs_ToToL Messages postés 170 Date d'inscription vendredi 25 avril 2003 Statut Membre Dernière intervention 9 juillet 2008 - 26 août 2003 à 00:19
cs_ToToL Messages postés 170 Date d'inscription vendredi 25 avril 2003 Statut Membre Dernière intervention 9 juillet 2008 - 28 août 2003 à 09:55
Tout d'abor voici mon code

#include <time.h>
#include
#include <conio.c>
int sec 0 , min 0 , heu = 0 , jour = 0 , moi = 0 , ann = 0 , anne = 0 ;

int heure_date(int abc)
{
/* Calcule de l'annee */
anne = int(abc/31557600.0);
ann = anne + 1970;
abc = abc - ( anne * 31557600 );
/* Calcule du mois */
for ( int u = 1 ; u < 13 ; u++ )
{if ( u 1 || u 3 || u == 5 || u == 7 || u == 8 || u == 10 || u == 12)
{ if ( abc > 2678400 ) { moi++; abc = abc - 2678400;cout << "\n1 - " << u << " " << abc;} }
if ( u 4 || u 6 || u == 9 || u == 11 )
{ if ( abc > 2592000 ) { moi++; abc = abc - 2592000;cout << "\n2 - " << u;} }

if ( u == 2 ) {if ( ann 2000 || ann 2004 || ann == 2008) { if ( abc > 2505600 ) { moi++; abc = abc - 2505600;} }
else if ( ann != 2000 && ann != 2004 && ann != 2008) { if ( abc > 2419200 ) { moi++; abc = abc - 2419200;cout << "\n3 - " << u;} } }

}
/* Calcule du des jour */
for ( int u = 1 ; u < 32 ; u++ )
{ if ( abc > 86399 ) { if ( ( u * 86399 ) > abc ) { jour u - 1 ; abc abc - ( jour * 86400 ); break;} }
}
/* Calcule du heure */
for ( int u = 1 ; u < 25 ; u++ )
{ if ( abc > 3599 ) { if ( ( u * 3600 ) > abc ) { heu u - 1 ; abc abc - ( heu * 3600 ); break;} }
}
/* Calcule du minutes */
for ( int u = 1 ; u < 61 ; u++ )
{ if ( abc > 59 ) { if ( ( u * 60 ) > abc ) { min u - 1 ; abc abc - ( min * 60 ); break;} }
}
/* Calcule du secondes */
sec = abc;

return abc;
}

int main()
{
while(1)
{
time_t t;
time(&t);
int y = heure_date(t);
cout << "Sec depuis 1970 : " << t
<< "\n\nAnnee : " << ann
<< "\nMois : " << moi
<< "\nJour : " << jour
<< "\nHeure : " << heu
<< "\nMinutes : " << min
<< "\nSecondes : " << sec
<< "\nReste : " << y
<< "\n\ntotal : " << ( (anne * 31557600) + ((moi) * 2678400) - 86400 * 5 + ((jour) * 86400) + ((heu) * 3600) + (min * 60) + sec )
<< "\ntime : " << ctime(&t);
gotoxy(80,25);
Sleep(1000);
clrscr();
moi = 0;
}
return 0;
}

plusieurs ligne de code sont des testes et certaine pourai etre remplacer par d'otre jen suis convaincu mais voici le probleme :

l'heure estimer en seconde depuis 1970 n'est pas bonne quand je calcule par contre avec la fonction ctime elle est juste et je ne voit pas comment il fait pour y arriver car moi sa me sort qu'il y y'aurai qu'elque jour de retard et des broutille

Merci d'éclairer ma lanterne

4 réponses

cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
27 août 2003 à 16:18
Salut,
D'apres ton prog une année fait toujours 31557600 secondes et un mois fait toujours 2678400 secondes ?
tu en est sur ? moi pas.
0
cs_ToToL Messages postés 170 Date d'inscription vendredi 25 avril 2003 Statut Membre Dernière intervention 9 juillet 2008
27 août 2003 à 22:52
thx je v meditter la dessu
0
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
28 août 2003 à 02:02
Salut,
Je pensais aux années bissextiles. Il y en a eu un paquet depuis 1970.
0
cs_ToToL Messages postés 170 Date d'inscription vendredi 25 avril 2003 Statut Membre Dernière intervention 9 juillet 2008
28 août 2003 à 09:55
c'est pour sa ke je prenai une anne a 365.25 jour mais en fait les 3 derniere anne etait ossi a 365.25 alor kil devrai poy avoir le 25 donc je refait tt mon truc
0
Rejoignez-nous