How to know if a DateTime is between a DateRange in C#

Issue

I need to know if a Date is between a DateRange. I have three dates:

// The date range
DateTime startDate;
DateTime endDate;

DateTime dateToCheck;

The easy solution is doing a comparison, but is there a smarter way to do this?

Solution

Nope, doing a simple comparison looks good to me:

return dateToCheck >= startDate && dateToCheck < endDate;

Things to think about though:

  • DateTime is a somewhat odd type in terms of time zones. It could be UTC, it could be “local”, it could be ambiguous. Make sure you’re comparing apples with apples, as it were.
  • Consider whether your start and end points should be inclusive or exclusive. I’ve made the code above treat it as an inclusive lower bound and an exclusive upper bound.

Answered By – Jon Skeet

Answer Checked By – Mildred Charles (AngularFixing Admin)

Leave a Reply

Your email address will not be published.