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 :

la différence entre deux dates


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    DEV
    Inscrit en
    Mars 2011
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre (Centre)

    Informations professionnelles :
    Activité : DEV
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mars 2011
    Messages : 50
    Par défaut la différence entre deux dates
    Bonjour,

    Je voulais savoir comment avoir la différence entre deux dates..

    premiere : DateTime.Now

    l'autre un date en format "string"

    et Mercciiii


  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2012
    Messages : 57
    Par défaut
    Salut !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    Public Class Form1
        Dim DateSelectionnee, Aujourdhui As Date
        Dim JourSelectionne, MoisSelectionne, AnneeSelectionnee, Quantieme, NbJours, NbMois, Trimestre, NrSemaine As Integer
        Dim PremierJourSemaine, DernierJourSemaine, PremierJourDuMois, DernierJourDuMois, DateAjoute As Date
     
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            ' Indique la date actuelle
            Aujourdhui = Date.Now
     
            ' Initialise la variable Dateselectionnee à la date d'aujourdhui
            DateSelectionnee = CDate(Aujourdhui.ToString("dd/MM/yyyy"))
     
            ' Affichage auformat date jj/mm/aa hh:mm:ss
            TB_Aujourdhui.Text = Aujourdhui
     
            ' Affichage au format jj/mm/aa
            TB_AujourdhuiSimple.Text = Aujourdhui.ToString("dd/MM/yyyy")
     
            ' Affichage plus complet au format 'Lundi 2 août 2010'
            TB_AujourdhuiComplet.Text = Aujourdhui.ToString("dddd d MMMM yyyy")
     
            ' Affiche la date du jour dans le text Box TB_AjouteJours
            TB_AjouteJours.Text = Aujourdhui.ToString("dd/MM/yyyy")
     
            ' MsgBox("Sélectionnez une date sur le calendrier")
     
        End Sub
     
        Private Sub Calendrier_DateSelected(ByVal sender As Object, ByVal e As System.Windows.Forms.DateRangeEventArgs) Handles Calendrier.DateSelected
            ' Date sélectionnée au format date
            DateSelectionnee = Calendrier.SelectionStart
     
            ' réactualise l'affichage du textbox (juste pour faire joli)
            TB_AjouteJours.Text = DateSelectionnee
            ' calcul les jours en plus au cas ou !
            Num_AjouteJours_ValueChanged(sender, e)
     
            ' Année sélectionnée au format "Entier"
            AnneeSelectionnee = DateSelectionnee.Year
     
            ' Mois sélectionné au format "Entier"
            MoisSelectionne = DateSelectionnee.Month
     
            ' Jour Sélectionné au format "Entier"
            JourSelectionne = DateSelectionnee.Day
     
            ' détermine le quantième (le jour de l'année 1 à 365)
            Quantieme = DateSelectionnee.DayOfYear
     
            AfficherSelection()
            Calculs()
        End Sub
     
        Private Sub AfficherSelection()
            ' Affichage des données
            TB_DateSelectionnee.Text = DateSelectionnee
            TB_AnneeSelectionnee.Text = AnneeSelectionnee
            TB_MoisSelectionne.Text = MoisSelectionne
            TB_JourSelectionne.Text = JourSelectionne
            TB_Quantieme.Text = Quantieme
        End Sub
     
        Private Sub Calculs()
            ' Calcul du nombre de jours entre les deux dates
            NbJours = DateDiff(DateInterval.Day, Aujourdhui, DateSelectionnee)
     
            ' Calcul du nombre de mois entre les deux dates
            NbMois = DateDiff(DateInterval.Month, Aujourdhui, DateSelectionnee)
     
            ' Calcul du nombre de trimestres entre les deux dates
            Trimestre = DateDiff(DateInterval.Quarter, Aujourdhui, DateSelectionnee)
     
            ' Détermine le numéro de semaine de la date sélectionnée
            NrSemaine = DatePart(DateInterval.WeekOfYear, DateSelectionnee, FirstDayOfWeek.Monday)
     
            ' Détermine le premier jour de la semaine de la semaine (Ce sera toujours un lundi,
            ' il est possible de le programmer différemment bien entendu)
            ' Dans cet exemple le premier jour est un lundi. Il suffit de faire la différence entre
            ' 2 (le lundi) et le numéro du jour
            Dim Différence As Short = 2 - DatePart(DateInterval.Weekday, DateSelectionnee)
            ' On ajoute (un chiffre négatif) pour retrouver la date du lundi de la semaine.
            PremierJourSemaine = DateSelectionnee.AddDays(Différence)
            '' Cet exemple peut être concatené comme cela :
            '' PremierJourSemaine = DateSelectionnee.AddDays(2 - DatePart(DateInterval.Weekday, DateSelectionnee))
            '' Je préfère décomposer un peu pour mieux comprendre.
     
            ' Détermine le dernier jour de la semaine.
            ' Dans cet exemple ce sera le dimanche (le jours N° 1)
            DernierJourSemaine = DateSelectionnee.AddDays(8 - DatePart(DateInterval.Weekday, DateSelectionnee))
     
            ' détermine le premier jour du mois (format date)
            PremierJourDuMois = CDate(1 & "/" & MoisSelectionne & "/" & AnneeSelectionnee)
     
            ' détermine le dernier jour du mois (format date)
            DernierJourDuMois = CDate(Date.DaysInMonth(AnneeSelectionnee, MoisSelectionne) & "/" & MoisSelectionne & "/" & AnneeSelectionnee)
     
            'Idem pour le premier et le dernier jour de l'année
            TB_1Janv.Text = CDate("01/01/" & AnneeSelectionnee)
            TB_31Dec.Text = CDate("31/12/" & AnneeSelectionnee)
     
            AfficherCalculs()
        End Sub
     
        Private Sub AfficherCalculs()
            ' Affichage des données
            TB_NbJours.Text = NbJours
            TB_NbMois.Text = NbMois
            TB_Trimestre.Text = Trimestre
            TB_NrSemaine.Text = NrSemaine
            TB_PremJourSem.Text = PremierJourSemaine
            TB_DernJourSem.Text = DernierJourSemaine
            TB_PremJourMois.Text = PremierJourDuMois
            TB_DernJourMois.Text = DernierJourDuMois
        End Sub
     
        Private Sub Num_AjouteJours_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Num_AjouteJours.ValueChanged
            ' Ajoute le nombre de jours indiqué par le NumericUpDown appelé AjouteJours
            DateAjoute = DateSelectionnee.AddDays(Num_AjouteJours.Value)
            TB_AjouteJours.Text = CDate(DateAjoute)
            ' Il est possible d'ajouter des années : remplacer AddDays par AddYears , des mois etc...
        End Sub
     
        Private Sub TB_NbJours_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TB_NbJours.TextChanged
     
        End Sub
     
        Private Sub TB_DateSelectionnee_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TB_DateSelectionnee.TextChanged
     
        End Sub
    End Class
    J'espère que ça pourra t'aider

  3. #3
    Membre chevronné

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2011
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 244
    Par défaut
    Hello,
    Il faut d'abord convertir ta date en string en DateTime (DateTime.TryParse(...)) puis utiliser la méthode Substract qui renvoie un TimeSpan. Tu peux ensuite récupérer le nombre de minutes ou de seconds ou d'heures grâce à monTimeSpan.TotalMinutes, monTimeSpan.TotalSeconds, etc.

Discussions similaires

  1. Réponses: 2
    Dernier message: 21/07/2006, 14h04
  2. Nombre de minutes de différence entre deux dates
    Par Oberown dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 05/05/2006, 15h41
  3. Différence entre deux dates
    Par Azharis dans le forum Access
    Réponses: 3
    Dernier message: 11/01/2006, 10h58
  4. Différence entre deux dates
    Par pittzz dans le forum Oracle
    Réponses: 5
    Dernier message: 18/07/2005, 12h24
  5. Comment obtenir la différence entre deux dates ?
    Par jbat dans le forum Langage
    Réponses: 4
    Dernier message: 02/06/2005, 09h34

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