For my app I need to know if Now()
is between two values.
The user can set a start- and an end-time so he will not disturbed by a notification (during the night for example).
So if have got two TimePicker
s (start- and end-time) that the user can set.
Lets say the user sets 22:00
for the StartTime
and 07:00
for the EndTime
(this would cover the night).
How can I check if the DateTime.Now
is between the selected Start and End time?
EDIT: I only want this to work with the Hour and minutes part. So if the user sets the Start and End time this should work for every night.
Subtracting the later time from the first time difference = later_time - first_time creates a datetime object that only holds the difference.
timedelta() method. To find the difference between two dates in Python, one can use the timedelta class which is present in the datetime library. The timedelta class stores the difference between two datetime objects.
First you need to convert everything to the same units (we'll use TimeSpan
), then you need to see whether the start-end times cross midnight, and finally do your comparison based on the results of that check:
// convert everything to TimeSpan TimeSpan start = new TimeSpan(22, 0, 0); TimeSpan end = new TimeSpan(07, 0, 0); TimeSpan now = DateTime.Now.TimeOfDay; // see if start comes before end if (start < end) return start <= now && now <= end; // start is after end, so do the inverse comparison return !(end < now && now < start);
Here's a function to do it for you:
bool TimeBetween(DateTime datetime, TimeSpan start, TimeSpan end) { // convert datetime to a TimeSpan TimeSpan now = datetime.TimeOfDay; // see if start comes before end if (start < end) return start <= now && now <= end; // start is after end, so do the inverse comparison return !(end < now && now < start); }
You would call it like:
bool silenceAlarm = TimeBetween(DateTime.Now, StartTime.Value, EndTime.Value);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With