c# – 如何测试DateTime是否在星期二之间(DayOfWeek)

c# – 如何测试DateTime是否在星期二之间(DayOfWeek),第1张

概述在C#中,给出一组任意的DayOfWeek终点(如DayOfWeek.Friday和DayOfWeek.Sunday),如果一个任意日期是在两天之间,包含在内的怎么样呢? 例: // result == true; Oct 23, 2010 is a Saturdayvar result = InBetweenDaysInclusive(new DateTime(2010, 10, 23), 在C#中,给出一组任意的DayOfWeek终点(如DayOfWeek.FrIDay和DayOfWeek.Sunday),如果一个任意日期是在两天之间,包含在内的怎么样呢?

例:

// result == true; Oct 23,2010 is a Saturdayvar result = InBetweenDaysInclusive(new DateTime(2010,10,23),DayOfWeek.FrIDay,DayOfWeek.Sunday);// result == true; Oct 22,2010 is a FrIDayresult = InBetweenDaysInclusive(new DateTime(2010,22),DayOfWeek.Sunday);// result == true; Oct 24,2010 is a Sundayresult = InBetweenDaysInclusive(new DateTime(2010,24),DayOfWeek.Sunday);// result == false; Oct 25,2010 is a Mondayresult = InBetweenDaysInclusive(new DateTime(2010,25),DayOfWeek.Sunday);

谢谢!

解决方法 根据开始和结束日期之间的差异是负数还是正/零,此函数将需要两个独立的分支.

我可以完全脱离基地,但我认为这适用于所有情况:

// No state in method,so made it staticpublic static bool InBetweenDaysInclusive(DateTime date,DayOfWeek start,DayOfWeek end){    DayOfWeek curDay = date.DayOfWeek;    if (start <= end)    {        // Test one range: start to end        return (start <= curDay && curDay <= end);    }    else    {        // Test two ranges: start to 6,0 to end        return (start <= curDay || curDay <= end);    }}

作为参考,当我运行它时,您的测试数据返回以下内容,并为每个结果添加了Console.Writeline:

TrueTrueTrueFalse

编辑:我最后的解释太模糊了.这是一个固定的.

诀窍在于,开始,那么你有两个有效的范围:开始上限和下限结束.这将导致(开始< = curDay&& curDay< = upperBound)|| curDay< = end&&& lowerBound< = curDay) 然而,由于它们是边界,所以curDay总是< = upperBound和> = lowerBound,因此我们省略了该代码.

总结

以上是内存溢出为你收集整理的c# – 如何测试DateTime是否在星期二之间(DayOfWeek)全部内容,希望文章能够帮你解决c# – 如何测试DateTime是否在星期二之间(DayOfWeek)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1257990.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存