FAQ ASP.NET/VB.NET

FAQ ASP.NET/VB.NETConsultez toutes les FAQ
Nombre d'auteurs : 38, nombre de questions : 369, dernière mise à jour : 16 juin 2021
Sommaire→Coté serveur et C#→Manipulations des datesIl est fréquent d'encoder une date sous forme d'une chaîne de caractères. La plupart du temps, le développeur d'applications souhaitera manipuler un objet DateTime, c'est pourquoi la conversion (casting) est importante.
Dim maDateChaine As String = "03/06/2005 17:06:00"
Dim maDate As DateTime = DateTime.Parse(maDateChaine)Bien que ceci soit très simple, la question revient fréquemment...
Dim diff As TimeSpan = date1 - date2
Le TimeSpan permet de récupérer des durées au format heures, minutes, secondes.
On utilisera ceci, entre autres, pour connaître la durée d'un travail, la durée d'exécution d'une requête
et bien d'autres choses.
Lien : Comment savoir le temps nécessaire à l'exécution d'une requête?
Une solution pour récupérer une date à partir d'indications telles que
- le jour de la semaine
- le numéro de la semaine
- l'année
par exemple: "Quelle est la date du mercredi de la semaine 45 de l'année 2005?"
Imaginons pour cela un formulaire simple avec :
1. 1 NumericUpDown "jourValue" pour les jours de la semaine (1-7)
2. 1 NumericUpDown "semaineValue" pour les semaines de l'année (1-52)
3. 1 TextBox "AnneeValue" pour l'année
4. 1 Label "resultat"
5. 1 bouton "Valider"
Imports System
'...
Private Const libelle As String = "Vous avez recherché : Le ";
'...
Private Sub Valider_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Valider.Click
Dim lannee As Integer
With Me
'Verifier si la saisie est bien numérique
'Recuperer l'année saisie
With .anneeValue
If IsNumeric(.Text) Then
lannee = CType(.Text, Integer)
Else : Exit Sub
End If
End With
'Imposer une date référencée au 01/01/ de l'année
Dim dateRef As New DateTime(lannee, 1, 1)
With .semaineValue
'Recuperer le choix de la semaine
Dim week As Double = CType(.Value, Double)
'Ajuster le nombre de jours/semaine à la date référencée
If week > 1 Then dateRef = dateRef.AddDays((week - 1) * 7)
End With
With .jourValue
'Recuperer le choix du jour
Dim day As Double = CType(.Value, Double)
'Recuperer le jour de la semaine de la date référencée
Dim j As Integer = CType((dateRef.DayOfWeek), Integer)
'Ajuster en fonction de la difference des deux
Select Case j
Case Is > day : dateRef = dateRef.AddDays(-(j - day))
Case Is < day : dateRef = dateRef.AddDays(day - j)
End Select
End With
'Afficher le resultat
With .resultat
.Text = String.Empty
.Text &= libelle
.Text &= dateRef.ToLongDateString
End With
End With
End Sub


