[英]How can I determine if the current time is within a reoccurring time range based on the day of week in C#?
不知道如何解決這個問題。 我有一個應用程序,用戶可以在其中選擇一個時間范圍(例如5:00 PM到10:00 AM),該時間范圍會根據用戶選擇的日期(例如周一,周四和周六)每天重復一次。 如何確定當前時間是否在這些范圍之一內?
編輯:
我看了一下“ 查找當前時間是否在某個時間范圍內” ,但是我認為這不是重復的,因為它不能解決我感到困惑的問題。 例如,我不確定當時間范圍落到第二天該怎么辦。 就像我的示例一樣,我將如何處理第二天的 5:00 PM至10:00 AM? 下一個星期,如從星期六到星期日(6到0),該怎么辦?
更多信息:
我沒有使用DateTime對象,我正在使用DaysOfWeek枚舉和Timespans來表示時間。 以下是我將使用的范圍的表示:
| startDay | startTime | endDay | endTime | |----------|-----------|--------|-----------| | 1 | 17:00:00 | 2 | 09:00:00 | | 3 | 09:00:00 | 3 | 17:00:00 | | 6 | 17:00:00 | 0 | 09:00:00 |
假設星期日是星期幾:
var now = DateTime.Now;
// offset from "Sunday"
var i = now.Date.AddDays(-(double) now.DayOfWeek);
// normalize to this week
var s = i.AddDays((double) startDay).AddHours(startTime.TotalHours);
// normalize to this week
var e = i.AddDays((double)((endDay < startDay) ? endDay + 7 : endDay)).AddHours(endTime.TotalHours);
Debug.Assert(now >= s && now <= e);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.