La chaîne revient de la base de données avec un format : 00/00/0000' Je dois ensuite la comparer à une date que l'utilisateur a saisie dans le même format. Comment puis-je effectuer la conversion et comparer les deux dates ?
Réponses
Trop de publicités?Vous pouvez utiliser
Dim dateA = DateTime.ParseExact(firstDateString, @"dd\/MM\/yyyy", Null)
Dim dateB = DateTime.ParseExact(secondDateString, @"dd\/MM\/yyyy", Null)
Dim areEqual = (dateA = dateB);
En supposant que votre format de date est jour/mois/année. Si c'est mois/jour/année, il suffit d'intervertir dd et MM.
Quand vous dites "comparer", essayez-vous d'analyser si les dates sont les mêmes (au jour près) ou si elles sont comprises dans une période de quelques jours ? Si vous voulez comparer si les dates sont identiques, vous pouvez simplement comparer la chaîne de caractères ou utiliser date.equals (comme mentionné dans les messages précédents), si vous essayez de déterminer un intervalle, vous devrez utiliser date compare.
Dim lDate1 As String = "29/03/2009"
Dim lDate2 As String = "30/03/2009"
Dim lPeriod As Int16 = 7
If lDate1 = lDate2 Then
'** Dates the same
End If
If Date.Equals(Date.ParseExact(lDate1, "dd/MM/yyyy", Nothing), Date.ParseExact(lDate2, "dd/MM/yyyy", Nothing)) Then
'** The same
End If
If Date.Compare(Date.ParseExact(lDate1, "dd/MM/yyyy", Nothing), Date.ParseExact(lDate2, "dd/MM/yyyy", Nothing)) > (lPeriod * -1) And Date.Compare(Date.ParseExact(lDate1, "dd/MM/yyyy", Nothing), Date.ParseExact(lDate2, "dd/MM/yyyy", Nothing)) < lPeriod Then
'** Within the period
End If