C# 确定一周中的某一天和某一时间是否属于自定义周末时段
我一直在尝试想出一种方法,给定一周中的某一天和某一天的某个时间,如果它属于自定义周末时段,它将返回 周末期间保存在4个变量中,如下所示:C# 确定一周中的某一天和某一时间是否属于自定义周末时段,c#,c,algorithm,delphi,C#,C,Algorithm,Delphi,我一直在尝试想出一种方法,给定一周中的某一天和某一天的某个时间,如果它属于自定义周末时段,它将返回 周末期间保存在4个变量中,如下所示: 开始的一周中的某一天(0-6) 一天中开始的时间(0-23) 一周中结束的那一天(0-6) 一天中结束的时间(0-23) 基于这些字段,周末可以是用户选择的任何时间段(即使它远远超出正常周末) 我已经拍了一段时间了,但是没有效果。我在delphi中尝试这一点,但任何语言都可以,因为我在寻找算法而不是实现。我假设还有一个约束,即端点>=beginpoint 最简
我已经拍了一段时间了,但是没有效果。我在delphi中尝试这一点,但任何语言都可以,因为我在寻找算法而不是实现。我假设还有一个约束,即端点>=beginpoint 最简单的方法是将“每周开始后的小时数”标准化
double interest = day * 24 + hours;
double startWeekend = startDay * 24 + startHours;
double endWeekend = endDay * 24 + endHours.
bool isInWeekend = interest >= startWeekend && interest < endWeekend;
双倍利息=天*24+小时;
双星端=星日*24+星日;
双休日=结束日*24+结束小时。
bool isInWeekend=interest>=startWeekend&interest
根据需要调整
编辑:
如果问题是周末可能与7*24小时的界限重叠,那么它会变得更有趣:
if startWeekend < endWeekend
then isInWeekend = interest >= startWeekend AND interest < endWeekend;
else isInWeekend = interest >= startWeekend OR interest < endWeekend;
如果startWeekend=startWeekend和interest=开始周末或利息<结束周末;
(C/Pascal伪代码稍微混合)将这四个值分别称为dstart、dend和hstart、hend。然后考虑从第0天到第0小时的总小时数,这是由<代码> TyStase=dSt** 24 + HStand,以及对于<代码> TyEng/<代码>。
如果您当前所在的一周时间在
t\u end
之前或t\u start
之后,则您处于周末时段。如果要处理换行的间隔
double hstart = startDay*24 + startHour;
double hend = endDay*24 + endHour;
double htest = testDay*24 + testHour;
return (hend-hstart)*(htest-hstart)*(hend-htest) > 0
为什么我需要约束?这不是终点,而是一周中的一天。我把星期天算为0。所以,星期六->星期天对我来说是6->0。选择一个周末时段星期五(17:00)->星期一(9:00)将产生5,17->1,9为什么这是无效的?你的意思是:“在t_结束之前和t_开始之后”?文莱的周末是星期五和星期天,星期六是工作日,那么文莱呢?