Desidero confrontare solo la parte della data (e non l'ora) di due oggetti Data VB.NET. C'è un modo per farlo?Come confrontare solo la parte della data e non l'ora di due date?
risposta
basta prendere la parte relativa alla data di ciascuna tramite la proprietà Date
e confrontare le due:
date1.Date.CompareTo(date2.Date)
Oppure:
If date1.Date < date2.Date Then
Confrontare le proprietà DateTime.Date.
Si potrebbe anche usare TimeSpan
Dim ts As TimeSpan
ts = dt1 - dt2
ts. I giorni avranno ora la differenza delle due date come giorni interi.
Volevo solo aggiungere che uso spesso (dt1-dt2) .Days come diff veloce. –
Proprio quello che stavo cercando! Grazie! – webprogrammer
Modificare la data txt1 per formattare gg/mm/aaaa utilizzando myDateTime.ToShortDateString()
in modo che entrambe le date siano nello stesso formato. poi:
if (DateTime.Compare(date1, date2) > 0)
// which means ("date1 > date2")
if (DateTime.Compare(date1, date2) == 0)
//which means ("date1 == date2");
if (DateTime.Compare(date1, date2) < 0)
//which means ("date1 < date2");
ottima logica per la gestione dei confronti delle date, grazie. – htm11h
Dim date1, date2 As Date
date1 = Date.Parse(dtpStart.Text)
date2 = Date.Parse(dtpEnd.Text)
If (DateTime.Compare(date1, date2) > 0) Then ' which means ("date1 > date2")
MessageBox.Show("يجب تحديد الفترة للتاريخ بشكل صحيح ", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, MessageBoxOptions.RtlReading)
Exit Sub
End If
utente si assume correttamente. –
Quindi rimuoverò il testo al riguardo. Solo per chi segue, il commento di Konrad aveva un senso al momento :) –
+1, aggiunto un piccolo bit alla sintassi VB if/then. – JaredPar