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 :

conversion float ou double en date/heure


Sujet :

C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Ao�t 2006
    Messages
    45
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2006
    Messages : 45
    Par d�faut conversion float ou double en date/heure
    Bonjour,

    quelle est la fa�on la plus rapide et simple pour convertir un float/double en une chaine formatt�e de type date/heure en C++

    Merci d'avance

  2. #2
    Membre �prouv�
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    126
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 126
    Par d�faut
    Bonjour,

    pour convertir un float vers un string tu peux utiliser ce type de code.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    std::string DoubleToString(double n)
    {
    	char s[255];
    	sprintf(s,"%f",n);
    	return s;
    }
    Ensuite � toi de "parser" correctement ta cha�ne pour y identifier chaque �l�ment de date, d'heure.

    A+,
    B.

  3. #3
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    F�vrier 2006
    Messages
    2 155
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 2 155
    Par d�faut
    Euh... la propose bien mieux en C++:
    http://cpp.developpez.com/faq/cpp/in...GS_convertform

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    #include <sstream>  
     
    template<typename T>
    std::string to_string( const T & Value )
    {
        // utiliser un flux de sortie pour créer la chaîne
        std::ostringstream oss;
        // écrire la valeur dans le flux
        oss << Value;
        // renvoyer une string
        return oss.str();
    }
    Apr�s, pour la mise en forme, encore et toujours !!

    Bonne continuation,

    Poukill

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Ao�t 2006
    Messages
    45
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2006
    Messages : 45
    Par d�faut
    Merci mais je me suis peut-�tre mal exprim�.

    Je re�ois d'une base de donn�es des tonnes de donn�es en format double contenant date et heure en format classique (jour depuis 1/1/70 dans la partie enti�re, puis heure/minute/seconde dans la partie d�cimale).

    Je cherche justement � parser/convertir le plus efficacement.

  5. #5
    Membre confirm�
    Profil pro
    Inscrit en
    F�vrier 2003
    Messages
    224
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2003
    Messages : 224
    Par d�faut
    Utilise ptime de boost, ca devrait faire l'affaire.

    http://www.boost.org/doc/libs/1_35_0...osix_time.html

    http://www.boost.org/doc/libs/1_35_0...e_time_io.html

    exemple d'utilisation des facets de boost tirer d'un bout de code.:
    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
    29
    30
    31
    32
    33
    34
    35
    /*
    ** Sets a Date in a cell
    */
    std::string DefaultCug::QuickSetDate(boost::posix_time::ptime time) {
        boost::posix_time::time_facet * outputFacet = new boost::posix_time::time_facet();
        boost::posix_time::time_input_facet * inputFacet = new boost::posix_time::time_input_facet();
        inputFacet->format("%d/%m/%Y");
        outputFacet->format("%d/%m/%Y");
        std::stringstream ss;
        ss.imbue(std::locale(std::locale::classic(), outputFacet));
        ss.imbue(std::locale(ss.getloc(), inputFacet));
     
        ss << time;
     
        return ss.str();
    }
     
    /*
    ** Gets a Date from a cell
    */
    boost::posix_time::ptime DefaultCug::QuickGetDate(std::string str) {
        boost::posix_time::time_facet * outputFacet = new boost::posix_time::time_facet();
        boost::posix_time::time_input_facet * inputFacet = new boost::posix_time::time_input_facet();
        inputFacet->format("%d/%m/%Y");
        outputFacet->format("%d/%m/%Y");
        std::stringstream ss;
        ss.imbue(std::locale(std::locale::classic(), outputFacet));
        ss.imbue(std::locale(ss.getloc(), inputFacet));
     
        ss << str;
     
        boost::posix_time::ptime time;
        ss >> time;
        return time;
    }
    par contre c'est etonnant que tu ne puisses pas recuperer directement un format date � partir de ta base de donn�e?
    Peux tu changer les requetes, genre pour pouvoir recuperer directement une chaine de caract�re avec la fonction TO_CHAR(madate, "YYYYMMDD") par exemple?

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Ao�t 2006
    Messages
    45
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2006
    Messages : 45
    Par d�faut
    Merci,

    Non, pas de format date (DLL propri�taire de s�ries temporelles, bourse etc)

    Pour le moment, j'en reste � mes conversions faites maison (84600 secondes dans 24 h etc) m�me si �a me para�t lourd et pas forc�ment hyper performant.

Discussions similaires

  1. Probl�me conversion float vers double
    Par jhenaff dans le forum SQL Proc�dural
    R�ponses: 3
    Dernier message: 27/01/2006, 10h39
  2. Conversion d'un tableau de float en double ?
    Par alex6891 dans le forum C++
    R�ponses: 5
    Dernier message: 05/01/2006, 06h04
  3. [datetime] conversion d'une cha�ne en une date + heure
    Par jean-jacques varvenne dans le forum G�n�ral Python
    R�ponses: 2
    Dernier message: 07/04/2005, 10h43
  4. [CR] pb (concat�nation/Conversion/Addition) sur date/heure
    Par marvel dans le forum SAP Crystal Reports
    R�ponses: 1
    Dernier message: 20/12/2004, 15h31
  5. Conversion date ->heures
    Par bdkiller dans le forum PostgreSQL
    R�ponses: 2
    Dernier message: 02/09/2004, 16h08

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