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 :

C++ boost et date


Sujet :

C++

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 55
    Par défaut C++ boost et date
    Salut les amis !

    Il y a bien longtemps que je ne fais plus de c++ et ponctuellement je dois m'y remettre pour un petit projet et je dois avouer que je suis perdu...

    Pourriez vous me donner un exemple concret et complet dans lequel on pourrait voir la déclaration d'une variable date et son affichage sous la forme SSYYMMDD-HHMMSS avec boost dans une console?

    Je repars de loin, alors il me faut la totale hein : les includes, le main, etc... et C++.
    J'insiste : il me faut ça avec la librairie BOOST car je vais devoir en utiliser une bonne partie.

    Merci d'avance !

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 533
    Par défaut
    La doc de Boost.Date_Time fournit déjà pas mal d'exemples, ils ne sont pas suffisamment clairs ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 55
    Par défaut
    Citation Envoyé par cob59 Voir le message
    La doc de Boost.Date_Time fournit déjà pas mal d'exemples, ils ne sont pas suffisamment clairs ?
    Déja merci de m'aider c'est sympa !

    Bon c'est moi qui doit chapeauter... si je prends le premier exemple :

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    using namespace boost::gregorian;
    date weekstart(2002,Feb,1);
    date weekend  = weekstart + weeks(1);
    date d2 = d1 + days(5);
    date today = day_clock::local_day();
    if (d2 >= today) {} //date comparison operators 
     
    date_period thisWeek(d1,d2);
    if (thisWeek.contains(today)) {}//do something 
     
    //iterate and print the week
    day_iterator itr(weekstart);
    while (itr <= weekend) {
        std::cout << (*itr) << std::endl;
        ++itr;
    }  
    //input streaming 
    std::stringstream ss("2004-Jan-1");
    ss >> d3;
     
    //date generator functions 
    date d5 = next_weekday(d4, Sunday); //calculate Sunday following d4
     
    //US labor day is first Monday in Sept 
    typedef nth_day_of_the_week_in_month nth_dow;
    nth_dow labor_day(nth_dow::first,Monday, Sep); 
    //calculate a specific date for 2004 from functor 
    date d6 = labor_day.get_date(2004);
    Ben d'entrée il bute sur ceci : date d2 = d1 + days(5);

    L'erreur est la suivante :
    [error] Unexpected unqualified-id before 'if'
    [error] Error 'd1' was not declared in this scope
    Mais qui qui me veut cet exemple ?

    Il doit me manquer un truc de base...

  4. #4
    Membre émérite

    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 533
    Par défaut
    Il dit que d1 n'est déclaré nulle part, ce qui est vrai. Ces exemples ne sont pas faits pour être copiés-collés dans l'IDE sans réfléchir, hein...
    Ceux-là, oui.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 55
    Par défaut
    Euh ouais, autant pour moi je me suis un peu emmêler les pinceau tout à l'heure. C'est bien l'exemple que tu me cites que je voulais te donner, lol. J'ai voulu aller vite et le reproduire sur mon portable car je n'ai pas mon autre PC sous la main et tout ça en 2 sec devant la télé...

    Donc du coup on oublie ce qui précède et on recommence avec cet exemple.

    Là, justement avec ce code j'ai ceci :

    [Linker error] SansNom3.o:SansNom3.cpp: (.text+0x194): undefined reference to `boost::gregorian::greg_month::as_long_string() const'
    ...
    [Error] Id returned 1 exit status

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 55
    Par défaut
    Petit complément j'utilise Dev C++ Portable mais je vois pas en quoi cela pourrait changer quelque chose...

  7. #7
    Membre émérite

    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 533
    Par défaut
    ld (et non pas Id) est ton éditeur de liens.
    S'il te renvoie une erreur, c'est certainement parce tu n'as pas ajouté les libs Boost à ton projet.

    Librairies que tu auras pris le soin de compiler avant d'ouvrir ce thread puisque, bien entendu, tu as le Getting Started fourni avec la documentation et noté qu'il fallait (dans le cas de conversions date/string) passer par une pré-compilation de Boost.DateTime.

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 55
    Par défaut
    Citation Envoyé par cob59 Voir le message
    ld (et non pas Id) est ton éditeur de liens.
    S'il te renvoie une erreur, c'est certainement parce tu n'as pas ajouté les libs Boost à ton projet.

    Librairies que tu auras pris le soin de compiler avant d'ouvrir ce thread puisque, bien entendu, tu as le Getting Started fourni avec la documentation et noté qu'il fallait (dans le cas de conversions date/string) passer par une pré-compilation de Boost.DateTime.
    Ok je vais lire ça... un grand merci en tout cas, je pensais qu'il fallait juste indiquer le chemin de la librairie et c'est tout. Du coup comment faire avec une appli DEV C++ portable?

  9. #9
    Membre émérite

    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 533
    Par défaut
    Je ne sais pas, ça fait longtemps que je n'ai pas touché à dev-c++.
    Et pour cause :
    http://www.developpez.net/forums/d11...iliser-dev-cpp

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 55
    Par défaut
    Citation Envoyé par cob59 Voir le message
    Je ne sais pas, ça fait longtemps que je n'ai pas touché à dev-c++.
    Et pour cause :
    http://www.developpez.net/forums/d11...iliser-dev-cpp
    J'utilise la version http://orwelldevcpp.blogspot.fr/ qui semble de nouveau maintenue, il me reste doc à y intégrer boost en portable...

    Quelqu'un aurait une idée?

  11. #11
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Par défaut
    devc++ ne veut pas dire grand chose, il peut fonctionner avec divers compilateurs. Quel compilateur utilises-tu derrière dev-C++ ? gcc ? Si oui, utilise les instructions pour gcc du getting started. L'objectif est dans un premier temps de compiler boost.

    Ensuite, une fois que tu auras les bibliothèques à ta disposition (des .lib, généralement) il te faudra les référencer dans ton projet dev-C++ pour que ton compilateur sache qu'il en a besoin.
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 55
    Par défaut
    Citation Envoyé par JolyLoic Voir le message
    devc++ ne veut pas dire grand chose, il peut fonctionner avec divers compilateurs. Quel compilateur utilises-tu derrière dev-C++ ? gcc ? Si oui, utilise les instructions pour gcc du getting started. L'objectif est dans un premier temps de compiler boost.

    Ensuite, une fois que tu auras les bibliothèques à ta disposition (des .lib, généralement) il te faudra les référencer dans ton projet dev-C++ pour que ton compilateur sache qu'il en a besoin.
    Merci les gars pour votre assistance sur ces questions qui doivent vous paraitre "rudimentaires"... mais à partir du moment ou je souhaite avoir tout ça en version portable (c'est le cas de Dev c++), y-a-t-il une version pré-compilée de boost vers laquelle je n'aurais plus qu'à faire des "#includes boost/..."?

  13. #13
    Inactif  


    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5 288
    Par défaut
    La majorité des libs de boost (dont Boost.date je crois perdu...) sont header only, il faut juste faire un include, pas de compilation à faire

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 55
    Par défaut
    Citation Envoyé par gbdivers Voir le message
    La majorité des libs de boost (dont Boost.date je crois perdu...) sont header only, il faut juste faire un include, pas de compilation à faire
    Justement je me fais jeter avec les dates... dans ce cas comment faire pour les avoir en precompiler ?

  15. #15
    Membre émérite

    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 533
    Par défaut
    La doc, bon sang, la doc !
    http://www.boost.org/doc/libs/1_52_0...library-binary

    Essaie de lancer bootstrap.bat puis b2.exe, et dit-nous ce que ça donne.

  16. #16
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 55
    Par défaut
    Citation Envoyé par cob59 Voir le message
    La doc, bon sang, la doc !
    http://www.boost.org/doc/libs/1_52_0...library-binary

    Essaie de lancer bootstrap.bat puis b2.exe, et dit-nous ce que ça donne.
    D'entrée j'ai déjà le boostrap.bat qui me répond ceci dans les logs :

    ###
    ### "Could not find a suitable toolset."
    ###
    ### You can specify the toolset as the argument, i.e.:
    ### .\build.bat msvc
    ###
    ### Toolsets supported by this script are: borland, como, gcc, gcc-nocygwin,
    ### intel-win32, metrowerks, mingw, msvc, vc7, vc8, vc9, vc10, vc11
    ###

    Je suis donc allé lancer le "build.bat msvc" qui a son tour part en live... c'est tout de même dingue qu'on ne puisse pas récupérer quelque part un package précompilé, non ???

    Serais je le seul à vouloir utiliser tout ça en version portable ??? c'est à dire un éditeur, un compilateur et cette librairie boost???

  17. #17
    Membre émérite

    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 533
    Par défaut
    Tu utilises Dev-C++ comme IDE, donc probablement mingw comme compilo, qui est la version Windows de GCC. Donc essaie b2.exe gcc.

    Malheureusement, ça m'étonnerait qu'il détecte immédiatement le mingw de ton installation "portable". Tu aurais plus de chance en téléchargeant une version portable de MinGW, en l'installant dans <Volume>:/MinGW (qui est l'emplacement "classique" du compilo) et en configurant Dev-C++ pour l'utiliser (ce qui ne devrait pas se dérouler sans heurts...).

    c'est tout de même dingue qu'on ne puisse pas récupérer quelque part un package précompilé, non ???
    BoostPro Computing fournit des binaires précompilés, mais uniquement pour Visual C++ 2010. Avec mingw il faut les compiler soi-même.

    Mais effectivement, je confirme que les environnements de travail exotiques (dev-cpp + compilo portables) rendent fastidieuse l'installation de bibliothèques telles que Boost.

  18. #18
    Membre confirmé
    Homme Profil pro
    Apprenti
    Inscrit en
    Décembre 2010
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Apprenti

    Informations forums :
    Inscription : Décembre 2010
    Messages : 86
    Par défaut boost, math
    Bonjour,

    pour reparler de boost, je viens de faire une recherche sur internet, pour voir où je peux trouver dans boost et seulement dans boost une librairie pour avoir la partie entière d'un nombre quelconque.

    J'ai été sur ce lien :

    mais ça ne répond pas à mes attentes.

    Je vous serais reconnaissant de bien voulouir m'indiquer un document où je puisse trouver cela directement sans devoir nécessairement demander ça à quelqu'un si j'ai besoin d'une librairie donnée.

    D'avance merci

  19. #19
    Membre émérite

    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 533

  20. #20
    Membre confirmé
    Homme Profil pro
    Apprenti
    Inscrit en
    Décembre 2010
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Apprenti

    Informations forums :
    Inscription : Décembre 2010
    Messages : 86
    Par défaut
    Justement, ça m'intéresserait de savoir comment vous avez trouvé l'endroit précis dans la documentation. Qu'avez donné comme requête ?

    merci , cordialement

Discussions similaires

  1. Compiler Boost 1.35.0 (filesystem et date)
    Par djkamikaz dans le forum Boost
    Réponses: 41
    Dernier message: 07/04/2008, 11h41
  2. Heritage de boost::gregorian::date
    Par dhoorens dans le forum Boost
    Réponses: 3
    Dernier message: 05/02/2008, 23h52
  3. Réponses: 3
    Dernier message: 06/05/2002, 18h24
  4. Réponses: 3
    Dernier message: 19/04/2002, 00h11

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