voila je sais que la fonctionnous retourne la date courante mais j'aimerai avoir la date de la veille automatiquement sans faire de traitement est ce possible?
Code : Sélectionner tout - Visualiser dans une fenêtre à part ctime()
voila je sais que la fonctionnous retourne la date courante mais j'aimerai avoir la date de la veille automatiquement sans faire de traitement est ce possible?
Code : Sélectionner tout - Visualiser dans une fenêtre à part ctime()
Salut,
Non, tu peux pas l'obtenir sans faire quelque chose à ce que je sache.
Tu peux par exemple prendre la date du jour, puis lui retirer un nombre de secondes, heures, jours, ca c'est toi qui voit pour la commodité de ton programme, car si t'as besoin de faire des calculs sur des dates, c'est pratique de retirer un nombre de secondes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 time_t temps; struct tm* temps_infos; int nb_sec; // <- Nombre de secondes que tu désires retirer ou ajouter. // Récupère le temps écoulé depuis le 1er janvier 1970. time(&temps); // On obtient une structure tm qui contient toutes les infos dont on a besoin. temps_infos = localtime(&temps); temps_infos->tm_sec = temps_infos->tm_sec + nb_sec; // On refabrique la date. mktime(temps_infos);
Et tu te retrouves aves une structure "tm*" qui contient ta nouvelle date, après à toi de l'exploiter comme bon te semble.
J'ai écrit ton bout de programme et je l'ai testé mais je comprend pas trop le resultat obtenu j'obtien un long chiffre qui doit représenté des seconde mais moi ce que je veux c'est une date en sortie.
je veux juste retirer 24h à la date courante donc d'après ce que tu m'a dit je converti les 24h en secondes donc nb_sec vaut 86 400s.
voilà ce que le résultat obtenu:
Code : Sélectionner tout - Visualiser dans une fenêtre à part temps_infos->tm_sec = temps_infos->tm_sec - nb_sec;
1092295530
Re,
Ben normalement, le mktime permet de refabriquer une structure tm* avec les infos enregristrées, donc après, normalement, il suffit d'accéder aux bonnes variables :
Faut pas oublier avant d'utiliser les fonctions time() et localtime() pour "initialiser" ta structure.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 typedef struct { int tm_hour; /* hour (0 - 23) */ int tm_isdst; /* daylight saving time enabled/disabled */ int tm_mday; /* day of month (1 - 31) */ int tm_min; /* minutes (0 - 59) */ int tm_mon; /* month (0 - 11 : 0 = January) */ int tm_sec; /* seconds (0 - 59) */ int tm_wday; /* Day of week (0 - 6 : 0 = Sunday) */ int tm_yday; /* Day of year (0 - 365) */ int tm_year; /* Year less 1900 */ }
Par exemple :
Enfin, ca marche comme ca normalement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 temps_infos->tm_mday; // jour temps_infos->tm_mon; // mois temps_infos->tm_year; // année
bon execuse je suis un vrai boulet mais ça fonctionne toujours pas j'ai des vieux code ASCII ou je sais pas trop quoi en résultat.
Je vais réfléchir sur leprobleme.
merci.
Euh tout bêtement :Envoyé par liliprog
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 time_t date = time( NULL ); date -= 86400; std::cout << "Hier nous étions le : " << ctime( date ) << std::endl;
compilé et testé avec le MinGW
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 #include <ctime> #include <iostream> using namespace std; int main () { time_t now = time(0); now -= 86400; tm * ptm = localtime (&now); int aa = ptm->tm_year + 1900; int mm = ptm->tm_mon + 1; int jj = ptm->tm_mday; cout << jj << "/" << mm << "/" << aa; cin.ignore(); }
Merci à tous
vous m'évitez de tourner en rond pendant un moment![]()
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager