Search code examples
c#.netdatetimedate-range

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


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.