我正在尝试编写一个可以检查商店是否开放的功能,但如果关闭时间是在第二天,它就不起作用。
例如,如果商店从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);
我该如何做到这一点?
答案 0 :(得分:2)
我建议使用开始时间和结束时间来计算商店开放时间的持续时间(TimeSpan)。
通过这种方式,您可以根据开放时间计算正确的关闭时间,并将其与当前时间进行比较,以获得答案。
Function Distance() As Integer
Distance = Application.WorksheetFunction.Index(Workbooks("Practice 1.xlsm").Worksheets("Sheet2").Range("I11:P18"), Range("K12"))
End Function