簡體   English   中英

如何根據C#中的星期幾確定當前時間是否在重復發生的時間范圍內?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM