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 :

Manipulation type "DATE" de "wtypes.h"


Sujet :

Visual C++

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 46
    Points : 38
    Points
    38
    Par défaut Manipulation type "DATE" de "wtypes.h"
    Bonjour,

    pour des raisons de compatibilité entre les types excel et c++ je suis obligé d'utiliser ce type de dates dont je n'ai réussi à trouver aucune doc.

    merci pour ceux qui en save quelque chose : au moins commment additionner/soustraire un nombre de jours à une date ? diffrence de jours entre 2 dates...

    merci d'avance

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 175
    Points : 12 302
    Points
    12 302
    Par défaut
    http://msdn.microsoft.com/en-us/libr...69(VS.80).aspx

    Pour les différences en nombre de jours, cela semble très facile.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 46
    Points : 38
    Points
    38
    Par défaut
    Citation Envoyé par bacelar Voir le message
    http://msdn.microsoft.com/en-us/libr...69(VS.80).aspx

    Pour les différences en nombre de jours, cela semble très facile.
    merci, parcontre pas trop pratique la table de correspondance pour identifier les dates. y a-t-il une fonction qui peut convertir un "DATE" en "jj/mm/yyyy" pour verifier.

    merci

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 175
    Points : 12 302
    Points
    12 302

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 46
    Points : 38
    Points
    38
    Par défaut
    exemple d'utilisation

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    DATE add_month(DATE date_1, double nb_month )
    {
          //convertir de DATE en COleDateTime
         COleDateTime date_tmp(date_1); 
     
         COleDateTime newDate(date_tmp.GetYear(), date_tmp.GetMonth()+ nb_month, date_tmp.GetDay(),0,0,0 );
     
         //convertir newDate en "DATE" 
    	return newDate.mdt;
        // ou bien
            return sttic_cast<DATE>(newDate);
     
    }
    merci

  6. #6
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Salut,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    COleDateTime une_date;
    DATE la_meme = static_cast<DATE>(une_date)
    COleDateTime définit l'opérateur DATE()

  7. #7
    Membre éprouvé
    Avatar de Gabrielly
    Inscrit en
    Juin 2004
    Messages
    722
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 722
    Points : 1 128
    Points
    1 128
    Par défaut
    merci pour ceux qui en save quelque chose : au moins commment additionner/soustraire un nombre de jours à une date ? diffrence de jours entre 2 dates...

    merci d'avance
    COleDateTime et COleDateTimeSpan sont de bonnes candidates pour les conversions entre différents types, les opérations (+, -), et les calculs de durée (time span) entre les dates.

  8. #8
    Membre éprouvé
    Avatar de Gabrielly
    Inscrit en
    Juin 2004
    Messages
    722
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 722
    Points : 1 128
    Points
    1 128
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    DATE add_month(DATE date_1, double nb_month )
    {
          //convertir de DATE en COleDateTime
         COleDateTime date_tmp(date_1); 
     
         COleDateTime newDate(date_tmp.GetYear(), date_tmp.GetMonth()+ nb_month, date_tmp.GetDay(),0,0,0 );
     
         //convertir newDate en "DATE" 
    	return newDate.mdt;
        // ou bien
            return sttic_cast<DATE>(newDate);
     
    }
    Attention, tu risques d'avoir un mois érroné comme 14 ou 18 dans newDate.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    DATE add_month(DATE date_1, double nb_month )
    {
          COleDateTime dtBeginDate(date_1); 
     
          COleDateTimeSpan dtSpan( nb_month * 30, 0, 0, 0);  // durée en nbre de jours.
     
         COleDateTime dtLastDate = dtBeginDate + dtSpan;
     
         return dtLastDate;
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    long GetOutstandingDays(DATE PaymentDate)
    {
            COleDateTime dtPaymentDate(PaymentDate);
     
            COleDateTime Today = COleDateTime::GetCurrentTime();
     
            COleDateTimeSpan dtOutstandingDays = Today - dtPaymentDate;
     
            long nOutstandingDays = (long) dtOutstandingDays.GetTotalDays();
     
            return nOutstandingDays;
    }


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

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