目前我有2个月的日历; 一个用于开始日期,另一个用于结束日期.用户可以选择除星期日之外的任何日期.还有一个按钮,用于检查日期是否有效.如果用户选择了包含星期天的日期范围,则系统不应允许该日期并显示其无效的消息.我们如何使用C#做到这一点?
只需检查选择的前7天.
从选定的第一个日期开始,检查此日期,然后检查下一个日期,并执行以下操作:
像这样的东西:
for (int index = 0; index < 7; index++)
{
DateTime dt = startDate.AddDays(index);
if (dt > endDate)
return true;
if (dt.DayOfWeek == DayOfWeek.Sunday)
return false;
}
Run Code Online (Sandbox Code Playgroud)
请注意,检查用户选择的开始日期和结束日期之间的所有日期没有意义,因为周数是100%重复出现的模式,只需查看选择是否以包含星期日的一周开始.
请注意,正如评论中所提到的,for循环实际上是不必要的.要么我们要到达结束日期,要么我们将在7个日期内找到一个星期日,所以我们可以重写上面的代码:
DateTime dt = startDate;
while (dt <= endDate)
{
if (dt.DayOfWeek == DayOfWeek.Sunday)
return false;
dt = dt.AddDays(1);
}
Run Code Online (Sandbox Code Playgroud)
就个人而言,我发现第一个解决方案更容易理解和推理.
| 归档时间: |
|
| 查看次数: |
607 次 |
| 最近记录: |