System.DateTime où System.TimeSpan ?
Bonjour Tout le monde ;)
Mon probléme est assez bizarre :aie:
Pour faire simple, j'ai un filtre à mettre en place:
-derniére minute
-depuis 5 minutes
-depuis 15 minutes
-depuis 30 minutes
etc...
Suivant la selection de l'utilisateur je filtre des données.
Voici mon code :
Code:
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
| 'Déclaration des variables
Public Selection_Temps As String
Public Heure_systeme As System.DateTime
Public duree_a_soustraire As System.TimeSpan
Public nouvelle_heure As System.DateTime
'Suivant les valeurs de Selection_temps, je retire 1,15,30 etc minutes
Heure_systeme = TimeOfDay
Selection_Temps = Select_temps.SelectedIndex
Select Case Selection_Temps
Case 0
'Dernière minute
duree_a_soustraire = New System.TimeSpan(0, 0, 1, 0)
nouvelle_heure = Heure_systeme.Subtract(duree_a_soustraire)
MsgBox(nouvelle_heure)
Case 1
'5 minutes
duree_a_soustraire = New System.TimeSpan(0, 0, 5, 0)
nouvelle_heure = Heure_systeme.Subtract(duree_a_soustraire)
MsgBox(nouvelle_heure)
Case 2
'15 minutes
duree_a_soustraire = New System.TimeSpan(0, 0, 15, 0)
nouvelle_heure = Heure_systeme.Subtract(duree_a_soustraire)
MsgBox(nouvelle_heure)
Case 3
'30 minutes
duree_a_soustraire = New System.TimeSpan(0, 0, 30, 0)
nouvelle_heure = Heure_systeme.Subtract(duree_a_soustraire)
MsgBox(nouvelle_heure)
Case 4
'60 minutes
duree_a_soustraire = New System.TimeSpan(0, 1, 0, 0)
nouvelle_heure = Heure_systeme.Subtract(duree_a_soustraire)
MsgBox(nouvelle_heure)
Case 5
'120 minutes
duree_a_soustraire = New System.TimeSpan(0, 2, 0, 0)
nouvelle_heure = Heure_systeme.Subtract(duree_a_soustraire)
MsgBox(nouvelle_heure)
End Select |
Voilà pour le code, le probléme est lorsque je retire 5 heures et qu'il est 04h59 du matin sur le poste il ne s'agit plus d'un TimeSpan mais d'un DateTime :(
Je sais que le TimeSpan représente une valeur depuis minuit mais comment faire alors ? SubtractHours existe comme AddHours?
Quelqu'un à une idée pour mon probléme ?? Merci pour vos réponses