Ylva D
Ylva D

Reputation: 365

How to compare just the date part and not the time of two Dates?

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?

Upvotes: 30

Views: 99945

Answers (6)

sun sreng
sun sreng

Reputation: 695

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#

Upvotes: 0

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

Upvotes: -2

Wavare Santosh
Wavare Santosh

Reputation: 61

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

Upvotes: 6

Paul Herzberg
Paul Herzberg

Reputation: 119

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.

Upvotes: 9

Jon Skeet
Jon Skeet

Reputation: 1499800

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

Upvotes: 66

Hans Passant
Hans Passant

Reputation: 941217

Compare the DateTime.Date properties.

Upvotes: 7

Related Questions