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

Visual C++ Discussion :

[VC++6]Conversion de date


Sujet :

Visual C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 140
    Par défaut [VC++6]Conversion de date
    Bonjour,

    j'ai une date au format AAAAMMJJ stockée dans une variable de type double.
    Je dois calculer à partir d'une date de ce type, le jour de la veille, ce qui n'ets pas simple ...
    COmment puis-je convertir cette variable de type double en format de date manipulable plus facilement ?

    merci ;-)

    ben

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    394
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 394
    Par défaut
    Voila un élément de réponse :
    un double c'est 8 octets contigüs, il peut donc être manipulé comme un tableau de 8 octets

  3. #3
    Membre chevronné
    Inscrit en
    Novembre 2006
    Messages
    362
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 362
    Par défaut
    Salut,

    Quel format de date penses-tu utiliser ? Comment le décrirais-tu ?

    Comment ferais-tu à la main pour transformer ton double en quelque chose dans ce format-ci ?

    Bonen réflection.

  4. #4
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Par défaut
    Je dois calculer à partir d'une date de ce type, le jour de la veille, ce qui n'ets pas simple ...
    Il suffit d'enlever un jour.
    Bien sûr, il est possible que du coup tu aies à passer au moins précédent et éventuellement à l'année précédente.

    Après y'a des moyens très simples de faire ce genre d'opérations.
    Tu passes en timestamp unix et tu soustraies 3600*24.

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    394
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 394
    Par défaut
    Je ne suis pas sûr que l'on comprenne la même chose.
    Si je comprend correctement, l'OP à une date codée sur 8 octets dans l' JJMMAAAA.
    Partant de là il doit trouver la veille de cette date. Je ne vois pas vraiment l'utilité d'un timestamp Unix ou autre. Ca se fait en deux ou trois ligne maxi.
    Seulement donner la solution n'est pas la meilleur façon de l'aider je pense

  6. #6
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 296
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 296
    Par défaut
    (La date de l'OP aussi étrange soit-elle est directement comparable)

    Sinon, je suis du même avis que loufoque => revenir à un type sur lequel on peut directement appliquer les opérations arithmétiques de bases que l'on est à même d'attendre de dates. Parce que là il va galérer s'il reste avec ça et cela ne se fait définitivement pas en trois lignes (merci les bissextiles). Les 8 octets du double (ce n'est pas toujours 8 d'ailleurs) n'aident pas. Cela n'est pas au point du BCD ou de la chaine de caractères. En revanche en quelques lexical_cast, strftime, strptime et quelques additions, c'est vite plié, et vite robuste. Plus long à exécuter qu'une dizaines de if, divisions, et autres modulos, c'est sûr.

    S'il s'agit d'un exo, ok pour le guider et lui montrer diverses approches.

    Si c'est pour de la production, autant le diriger vers les solutions de production (à savoir déjà ne pas utiliser des doubles formattés pour affichage ). Il y a des types standard qui bien que demandant un peu d'huile de coude offrent au moins un minimum viable. Des portables aussi (boost). Des liés à une API (MFC/timestamps *nix/VCL/...).
    Si qui n'empêche pas de faire des exos à côté de ce qui finira en production. A propos d'exos, c'est un super classique d'ailleurs.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

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

Discussions similaires

  1. Conversion de date
    Par jdu dans le forum Access
    Réponses: 2
    Dernier message: 26/01/2005, 16h17
  2. Conversion de dates
    Par Gogoye dans le forum Modules
    Réponses: 5
    Dernier message: 10/08/2004, 11h39
  3. - [CAST ou CONVERT] Problème de conversion de date
    Par Boublou dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 06/07/2004, 14h31
  4. Conversion de date lors d'un import
    Par bilbon.S dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 26/03/2004, 14h33
  5. Conversion de date et division 64 bits
    Par dway dans le forum Assembleur
    Réponses: 38
    Dernier message: 27/01/2004, 10h31

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