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

VB.NET Discussion :

Différence entre 2 dates en années/mois/jours


Sujet :

VB.NET

  1. #21
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Israël

    Informations forums :
    Inscription : Mars 2012
    Messages : 691
    Points : 929
    Points
    929
    Par défaut
    Bonjour

    selon le code de meziantou

    si il y a 31 jours de différences on compte comme 1 mois ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     DateDiff(New DateTime(2011, 3, 15), New DateTime(2011, 4, 15))
    donne un mois
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DateDiff(New DateTime(2011, 3, 16), New DateTime(2011, 4, 15))
    donne 30 jours
    ici cas spécial
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DateDiff(New DateTime(2012, 2, 16), New DateTime(2012, 3, 16))
    on obtient un mois
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     DateDiff(New DateTime(2012, 2, 16), New DateTime(2012, 3, 15))
    on obtient 28 jours

  2. #22
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    Citation Envoyé par shayw Voir le message
    ...
    Tout ça me semble correct... Qu'est-ce qui te gêne exactement ?

  3. #23
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Israël

    Informations forums :
    Inscription : Mars 2012
    Messages : 691
    Points : 929
    Points
    929
    Par défaut
    c'est plutot une question de comment tu interprètes le résultat
    bizarre de dire j'ai un mois entre le 15/3/2011 et 15/4/2011
    mais 30 jours entre le 15/3/2011 et 14/4/2011
    justement car le mois n'est pas une unité fixe

    du moment que l'utilisateur de l'application sait interpreter le résultat

  4. #24
    Membre chevronné Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Points : 1 961
    Points
    1 961
    Par défaut
    A aucun moment on ne définit un mois sur 31 jours, comme tu le dis, le mois n'est pas une unité fixe, d'où l'utilisation de DateTime.DaysInMonth

  5. #25
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Points : 10 166
    Points
    10 166
    Billets dans le blog
    36
    Par défaut
    Citation Envoyé par _Ez3kiel Voir le message
    Wow, y'a eu du remue-méninges ici !

    @clementmarcotte: Je crois que tu ne gères pas le cas où le mois de début est supérieur au mois de fin
    Pas besoin ! C'est du pur Framework. DateTime s'en occupe.

  6. #26
    Membre chevronné Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Points : 1 961
    Points
    1 961
    Par défaut
    C'est à dire ?

    Actuellement on obtient une exception OutOfRange dans ton algo avec par exemple ces 2 dates :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            Dim datedebut As Date = New DateTime(1992, 9, 28)
            Dim datefin As Date = New DateTime(2009, 1, 1)

  7. #27
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Points : 10 166
    Points
    10 166
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Ces deux dates "marchent de première classe" chez moi. Je ne sais pas quoi dire.

  8. #28
    Membre émérite Avatar de meziantou
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2010
    Messages
    1 223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 1 223
    Points : 2 439
    Points
    2 439
    Par défaut
    Il y a des cas où la variable "lemoiscomplet" vaut 0 => la date n'est donc pas valide car le mois doit être compris entre 1 et 12.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    premieressai(New DateTime(2012, 12, 31), New DateTime(2013, 1, 1))
    Tu peux utiliser le jeu de test de mon exemple pour tester ton algo.

  9. #29
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Points : 10 166
    Points
    10 166
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Citation Envoyé par meziantou Voir le message
    Il y a des cas où la variable "lemoiscomplet" vaut 0 => la date n'est donc pas valide car le mois doit être compris entre 1 et 12.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    premieressai(New DateTime(2012, 12, 31), New DateTime(2013, 1, 1))
    Tu peux utiliser le jeu de test de mon exemple pour tester ton algo.
    Je n'ai pas actuellement avec moi le disque externe avec ma source. Mais, c'est vrai que j'ai seulement testé avec des variable créées avant l'appel de la fonction comme paramètres et non pas en créant les types directement dans l'appel de la fonction.

    Mais, cela m'intrigue. S'il y a un os, c'est préférable de le débusquer. Je regarde cela ce soir (chez-moi), cette nuit (chez-vous).

    Je vous en redonne des nouvelles.

  10. #30
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Points : 10 166
    Points
    10 166
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Vous aviez raison

    Je me suis royalement planté.

    Toutes mes excuses pour avoir douté.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Calcul de durée entre deux dates en années, mois, jours, heures, minutes, secondes et reste
    Par Invité dans le forum Algorithmes et structures de données
    Réponses: 19
    Dernier message: 02/10/2015, 12h31
  2. [AC-2007] Reunir en un champs une date separé (année, mois ,jour)
    Par mbarrette3 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 05/10/2011, 14h48
  3. date en année/mois/jour
    Par marcusien dans le forum Windows Forms
    Réponses: 6
    Dernier message: 13/03/2007, 14h58
  4. Réponses: 2
    Dernier message: 21/07/2006, 14h04

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