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++Builder Discussion :

Manipuler des TDateTime comme des entiers? [FAQ]


Sujet :

C++Builder

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 13
    Points : 7
    Points
    7
    Par défaut Manipuler des TDateTime comme des entiers?
    Bonjour,
    Je ne sais pas si la question sera bien posée...

    Je souhaite pouvoir convertir des entiers qui représenteraient des dates en secondes(forma time date depuis le 1/1/1970...Je crois) en TDateTime. Ainsi que de pouvoir faire la manip inverse afin de pouvoir a ajouter des durées, entière, en seconde et les reconvertirs après addition.

    Qqn connait l'outil de conversion s'il y en a un? Je reste à votre dispo pour tout complement d'info.
    Merci d'Avance
    François

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 71
    Points : 75
    Points
    75
    Par défaut
    Bonjour

    Regarde l'aide sur la classe TDateTime, les différents constructeurs, les méthodes.
    Regarde aussi toutes les routines date/heure telles que IncMonth, IncMinute, etc...

  3. #3
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 163
    Points : 1 148
    Points
    1 148
    Par défaut
    Regarde la fonction FormatDate

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    Salut,
    J'ai fini par m'en sortir en utilisant le code suivant : Pas très propre mais efficace !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    TDateTime convertir_time_en_TDateTime_(time_t t )
    {
       tm *d ;
       d=new tm ;	// allocation de memoire pour d pointant sur une heure calendaire
       *d=*localtime(&t) ;  // conversion de t en d
     
    AnsiString A= IntToStr(d->tm_mday)+"/"+IntToStr(d->tm_mon+1)+"/"+IntToStr(d->tm_year+1900)+" "+IntToStr(d->tm_hour)+":"+IntToStr(d->tm_min)+":"+IntToStr(d->tm_sec);
     
    TDateTime B=StrToDateTime (A) ;
    return B;
    }
    ++

  5. #5
    Expert éminent sénior


    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    7 856
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 7 856
    Points : 34 380
    Points
    34 380
    Par défaut
    Bonjour,

    pourquoi n'as tu pas suivi les conseils d'Orangina ?

    http://c.developpez.com/faq/bcb/?pag...empsoperations

    Eric

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    Salut,
    Parceque je n'ai pas trouvé de méthodes toute faite pour la conversion des time (heure en seconde depuis 19.....) en TdateTime. J'ai tourné en rond un bon moment car en fait je génère aléatoirement des dates (sous forme d'entier en seconde) comprise entre maintenant et dans x jours. Je ne dis pas que ça n'existe pas, mais juste que je n'ai pas trouvé.
    Après réflexion, il doit bien y avoir possibilité de généré aléatoirement des TdateTime (reste à réfléchir au code!) puis de faire un truc du genre IncSeconde ( pour ma durée à ajouter) afin d'obtenir un autre TDateTime comme date de fin. Cela ne m'avait pas sauté au yeux sur le moment....
    Voili voilou....
    Bonne journée

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    633
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 633
    Points : 711
    Points
    711
    Par défaut
    Bonjour,

    Ca m'a l'air compliqué ton code. Construire une chaine pour ensuite la décoder dans une structure.

    D'autre part, il y a
    et la libération de la mémoire ?

  8. #8
    Responsable Magazine

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Points : 22 087
    Points
    22 087
    Par défaut
    Citation Envoyé par toufou25
    Salut,
    Parceque je n'ai pas trouvé de méthodes toute faite pour la conversion des time (heure en seconde depuis 19.....) en TdateTime. J'ai tourné en rond un bon moment car en fait je génère aléatoirement des dates (sous forme d'entier en seconde) comprise entre maintenant et dans x jours. Je ne dis pas que ça n'existe pas, mais juste que je n'ai pas trouvé.
    Après réflexion, il doit bien y avoir possibilité de généré aléatoirement des TdateTime (reste à réfléchir au code!) puis de faire un truc du genre IncSeconde ( pour ma durée à ajouter) afin d'obtenir un autre TDateTime comme date de fin. Cela ne m'avait pas sauté au yeux sur le moment....
    Voili voilou....
    Bonne journée
    Si ton raisonnement est de calculer aléatoirement le temps en seconde qui te sépare de maintenant à la date aléatoire, il te suffite de faire ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    int nbSeconde ;
    TDateTime dateAleatoire ;
    dateAleatoire = Now() ;
    Génération aléatoire des secondes //a toi de faire cette partie
    dateAleatoire = IncSecond(dateAleatoire,nbSeconde) ;
    J'espère que ceci t'aidera et que c'est bien ce que tu cherche.
    A plus

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    Salut Pottiez, salut tout le monde,

    J'ai effectivement fait les modifications que vous m'avez indiqué (qui fonctionnent très bien soit dit en passant).
    Mais je me retrouve avec un nouveau problème pour exporter les résultats dans un fichier en utilisant les opérateurs chevrons. J'ai posé un nouveau post à ce sujet :

    operator > > et << pour un TDateTime : ambiguité.

    Merci pour votre aide, François.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 15/05/2011, 15h42
  2. Réponses: 5
    Dernier message: 23/10/2009, 18h42
  3. Réponses: 2
    Dernier message: 18/03/2009, 09h39
  4. Réponses: 3
    Dernier message: 02/10/2006, 21h13
  5. [JPEG] Traiter des Jpg comme des Bmp : Canvas
    Par Clorish dans le forum Langage
    Réponses: 9
    Dernier message: 20/07/2005, 11h14

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