处理开店和关门时间店

时间:2016-04-24 23:06:24

标签: c#

我正在尝试编写一个可以检查商店是否开放的功能,但如果关闭时间是在第二天,它就不起作用。

例如,如果商店从16:00 - 21:00开放,但不是16:00 - 1:00,则可以使用。

对于这些开放时间:

Sunday Open - Yes
Sunday Start - 16:00
SundayEnd - 01:00

Open Monday - Yes
Open Monday - 16:00
MondayEnd - 01:00

如果是星期一00:30,该函数必须返回true,但这不会成功。

我的代码现在:

OpenHours oh = GetOpenHours();
DateTime now = DateTime.Now;
bool todayOpen = GetOpenDay(oh, now.DayOfWeek);
TimeSpan end = GetOpenEnd(oh, now.DayOfWeek);
TimeSpan begin = GetOpenStart(oh, now.DayOfWeek);

if (end < begin)
    return todayOpen && (now.TimeOfDay < end || now.TimeOfDay > begin);
else
    return todayOpen && (now.TimeOfDay < end && now.TimeOfDay > begin);

我该如何做到这一点?

1 个答案:

答案 0 :(得分:2)

我建议使用开始时间和结束时间来计算商店开放时间的持续时间(TimeSpan)。

通过这种方式,您可以根据开放时间计算正确的关闭时间,并将其与当前时间进行比较,以获得答案。

 Function Distance() As Integer

 Distance = Application.WorksheetFunction.Index(Workbooks("Practice 1.xlsm").Worksheets("Sheet2").Range("I11:P18"), Range("K12"))

 End Function