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 :

[2.0] DateDiff et différence de jours


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Par défaut [2.0] DateDiff et différence de jours
    Salut,

    J'essaie de faire une simple comparaison de date en utilisant DateDiff :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    derniereExecution = CType(item("DATE_JOURNAL"), Date)
    If DateDiff(item("CODE_INTERVALLE").ToString, derniereExecution, Date.Now) < CType(item("VALEUR_INTERVALLE"), Long) Then
    Ce qui donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DateDiff("d", #3/17/2008 5:10:16 PM#, #3/18/2008 9:27:58 AM#)
    Et ce qui me retourne 0 ou lieu de 1.
    J'ai donc regardé du coté de MSDN le pourquoi du comment et il n'y a qu'un avertissement concernant la soustraction de semaines :
    Lorsque la partie d'heure de Date1 est supérieure à celle de Date2 et que Interval est défini avec la valeur DateInterval.WeekOfYear, la fonction DateDiff retourne une valeur qui est inférieure de un par rapport à la valeur correcte.
    Pouvez-vous me confirmer, ou m'infirmer, que le comportement est le même pour une différence de jours?

    Merci par avance.

  2. #2
    Membre chevronné
    Inscrit en
    Juin 2007
    Messages
    459
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 459
    Par défaut
    Je ne réponds pas à ta question, mais je voulais simplement t'orienter vers la classe TimeSpan qui représente une différence de dates et qui possède des propriétés très intéressantes (du style Days, TotalDays)
    Tu peux obtenir un TimeSpan de la façon suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
            Dim date1 As Date
            Dim date2 As Date
            Dim delta As TimeSpan = date1 - date2

  3. #3
    Membre Expert Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Par défaut
    Merci pour ta réponse.

    Mais à vue de nez ça me conviendrait pas, car je cherche à faire une comparaison de dates de façon dynamique. Je peux très bien comparer des mois, des semaines, des jours dans la semaine, etc. D'après ce que j'ai pu voir timespan prends le jour comme unité la plus grande.

  4. #4
    Membre chevronné
    Inscrit en
    Juin 2007
    Messages
    459
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 459
    Par défaut
    Je crois qu'il n'y a en fait pas de problème. Il y a 0 jours entre #3/17/2008 5:10:16 PM# et #3/18/2008 9:27:58 AM#. Par contre, il y a 16 heures :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Dim delta As Long = DateDiff("h", #3/17/2008 5:10:16 PM#, #3/18/2008 9:27:58 AM#)
    ' delta = 16.

  5. #5
    Membre Expert Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Par défaut
    Disons qu'il y a une certaine cohérence, je le comprends bien. Mais le but de ma comparaison n'est pas de tester s'il y a bien 24 heures de différence mais si je suis bien passé d'un jour à l'autre.

    En attendant, je fais un test en plus avec datepart dans les cas où je compare des jours ou des semaines.

  6. #6
    Membre chevronné
    Inscrit en
    Juin 2007
    Messages
    459
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 459
    Par défaut
    Si tu souhaites savoir si tu as changé de jour, compare la propriété Day de chaque date. DateDiff n'est pas la bonne méthode puisque qu'elle indique un intervalle exprimé en jour (si commutateur "d"), ce qui n'est pas la même chose.

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

Discussions similaires

  1. DATEDIFF avec uniquement les jours ouvrés
    Par Inconnu_du_69 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 19/03/2009, 15h32
  2. [SQL] obtenir la différence en jours entre deux dates sql
    Par toma03 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 06/06/2007, 12h20
  3. [VB.NET 2005 XE]calculer la différence en jours entre 2 dates ?
    Par kinganasius dans le forum Windows Forms
    Réponses: 1
    Dernier message: 04/04/2007, 15h00
  4. [Dates] Calculer différence en jours entre deux dates
    Par looping2b2a dans le forum Langage
    Réponses: 4
    Dernier message: 29/12/2006, 23h32
  5. Réponses: 6
    Dernier message: 06/12/2005, 16h51

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