Question

I want to compare just the date part (and Not the time) of two VB.NET Date objects. Is there a way to do that?

Was it helpful?

Solution

Just take the date part of each via the Date property and compare the two:

date1.Date.CompareTo(date2.Date)

Or:

If date1.Date < date2.Date Then

OTHER TIPS

Compare the DateTime.Date properties.

You could also use TimeSpan

Dim ts As TimeSpan
ts = dt1 - dt2

ts.Days will now have the difference of the two dates as whole days.

Change the txt1 date to format dd/mm/yyyy using myDateTime.ToShortDateString() so that both the dates will be in same format. then :

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");
Dim backDateCount As Integer = DateDiff(DateInterval.Day, CDate(dtpCheckIn.SelectedDate.Value).Date, Date.Now.Date)

Date.Now.Date: #12/4/2018 12:00:00 AM#

Date.Now: #12/4/2018 03:23:34 PM#

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
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top