Bonjour,
Je voulais savoir comment avoir la différence entre deux dates..
premiere : DateTime.Now
l'autre un date en format "string"
et Mercciiii
:ccool::D
Version imprimable
Bonjour,
Je voulais savoir comment avoir la différence entre deux dates..
premiere : DateTime.Now
l'autre un date en format "string"
et Mercciiii
:ccool::D
Salut !
J'espère que ça pourra t'aiderCode:
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
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.