IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

date de la veille


Sujet :

C++

  1. #1
    Membre du Club Avatar de liliprog
    Inscrit en
    Juillet 2004
    Messages
    135
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 135
    Points : 61
    Points
    61
    Par défaut date de la veille
    voila je sais que la fonction nous retourne la date courante mais j'aimerai avoir la date de la veille automatiquement sans faire de traitement est ce possible?

  2. #2
    Futur Membre du Club
    Inscrit en
    Octobre 2003
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 10
    Points : 9
    Points
    9
    Par défaut
    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.

  3. #3
    Membre du Club Avatar de liliprog
    Inscrit en
    Juillet 2004
    Messages
    135
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 135
    Points : 61
    Points
    61
    Par défaut
    Merci beaucoup
    je vais faire ça

  4. #4
    Membre du Club Avatar de liliprog
    Inscrit en
    Juillet 2004
    Messages
    135
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 135
    Points : 61
    Points
    61
    Par défaut
    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.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    temps_infos->tm_sec = temps_infos->tm_sec - nb_sec;
    voilà ce que le résultat obtenu:
    1092295530

  5. #5
    Futur Membre du Club
    Inscrit en
    Octobre 2003
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 10
    Points : 9
    Points
    9
    Par défaut
    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 :

    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 */
    }
    Faut pas oublier avant d'utiliser les fonctions time() et localtime() pour "initialiser" ta structure.

    Par exemple :

    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
    Enfin, ca marche comme ca normalement.

  6. #6
    Membre du Club Avatar de liliprog
    Inscrit en
    Juillet 2004
    Messages
    135
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 135
    Points : 61
    Points
    61
    Par défaut
    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.

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    258
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 258
    Points : 288
    Points
    288
    Par défaut
    Citation Envoyé par liliprog
    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 :
    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;

  8. #8
    HRS
    HRS est déconnecté
    Membre confirmé
    Avatar de HRS
    Inscrit en
    Mars 2002
    Messages
    677
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 677
    Points : 638
    Points
    638
    Par défaut
    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();	
    }

  9. #9
    Membre du Club Avatar de liliprog
    Inscrit en
    Juillet 2004
    Messages
    135
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 135
    Points : 61
    Points
    61
    Par défaut
    Merci à tous
    vous m'évitez de tourner en rond pendant un moment

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. récupérer la date de la veille dans trois cellules différentes
    Par meuah dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 23/05/2008, 09h51
  2. récupérer la date de la veille
    Par mromain dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 30/04/2008, 13h06
  3. [Dates] Avoir la date de la veille
    Par mariafan dans le forum Langage
    Réponses: 3
    Dernier message: 06/07/2007, 17h47
  4. La date de la veille
    Par tchoukapi dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 27/04/2007, 11h30
  5. Recuperer la date de la veille
    Par Wisefool dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 01/09/2005, 15h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo