Ajouter un mois a une date, avec time.h

Fermé
liam - 17 nov. 2003 à 15:47
 ziz - 4 juin 2009 à 17:13
salut a tous,

j'ai un petit souci, je voudrais recuperer la date actuelle d1, y ajouter 1 mois et la comparer avec une autre date d2, afin de voir si d2 est dans moins d'1 mois.

voici mon code:

time_t rawtime;
struct tm *timeinfo, *t;
time_t tps, now;

time ( &rawtime );
t = localtime ( &rawtime );

if (Bmonth < month) // Bmonth == d2 et month == d1
t->tm_year = year - 1900 + 1;
else
t->tm_year = year - 1900;

t->tm_mon = Bmonth - 1;
t->tm_mday = Bday;
t->tm_hour = t->tm_min = t->tm_sec = 0;

tps = mktime(t);

time(&now);

diff = difftime(now, tps);

if (diff < 30)
return 1;
else
return 0;

///fin du code

Bmonth et month sont recuperer avant dans le code.
En sortie, la valeur de diff ne change jamais, et si j'esaie deprinter des valeurs de tps ou de now, ca plante... Bref, je dois mal utiliser tous ca. Si qqun pouvait m'aider ca serait sympa! Merci d'avance!

ps: dsl pour l'indentation du code, c du copier/coller...
A voir également:

2 réponses

rebonjour,

excuser moi j'ai oublier de modifier qqchose dans le code:

diff = difftime(now, tps) / (3600 * 24);
0
Bonjour, je me demande si le plantage n'est pas du a la mauvaise initialisation des
variables.

au lieu de ceci ,



je verrai plutot ceci avant de jouer avec des fonction difftime



struct tm *timeinfo, *t;
time_t rawtime,
          now;

rawtime= time ( NULL ); 
now = time (NULL); 

/* Et pour initialiser   *t   */

t = gmtime (&now);


timestamp = time(NULL);

T = gmtime(&user_date);
0