2009-03-06 12 views

risposta

54

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 
+0

utente si assume correttamente. –

+0

Quindi rimuoverò il testo al riguardo. Solo per chi segue, il commento di Konrad aveva un senso al momento :) –

+0

+1, aggiunto un piccolo bit alla sintassi VB if/then. – JaredPar

7

Confrontare le proprietà DateTime.Date.

7

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.

+1

Volevo solo aggiungere che uso spesso (dt1-dt2) .Days come diff veloce. –

+0

Proprio quello che stavo cercando! Grazie! – webprogrammer

5

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"); 
+0

ottima logica per la gestione dei confronti delle date, grazie. – htm11h

-3
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