gpt4 book ai didi

c# - 检查DateTime是否在特定范围内

转载 作者:太空宇宙 更新时间:2023-11-03 17:57:03 27 4
gpt4 key购买 nike

需要检查DateTime是否在特定范围内。
我想我需要计算知道今年DST时间的第一个和最后一个日期。

我如何计算“ 3月2日星期天”的日期?

From 1/1/2007 12:00:00 AM to 12/31/9999 12:00:00 AM
Begins at 2:00 AM on Sunday of week 2 of March
Ends at 2:00 AM on Sunday of week 1 of November


例如,我需要检查11/21/2011是否在3月的第2周的星期日与11月的第1周的星期日之间-答案应该为“否”

如果我通过2011年8月8日-答案应该是。

基本上,我需要编写函数来检查我的日期是否属于夏令时。到目前为止,我唯一的想法是编写循环来查找第二周。

因此,我将从3月的第1天开始循环播放,直到我第二次到达周日。从11月1日开始,直到我第一次遇到周日,我都会循环(增加1天)。

换句话说,我需要函数来检查输入数据是否在夏令时期间。由上面的约束定义的时间段。

附言我无法使用 TimeZoneInfo,因为它在Silverlight中
P.P.S我无法使用 DateTime.IsDaylightSavingsTime,因为我没有时间使用“本地”类型

最佳答案

我只是做了这个小方法,检查一下,然后通知我:

    bool IsInDaylightSavingsTime(DateTime date)
{
// get second sunday in march
DateTime _tempDateMar = new DateTime(date.Year, 3, 1);
int secondSunDayInMar = (8 - (int)_tempDateMar.DayOfWeek) + 7;
_tempDateMar = new DateTime(date.Year, 3, secondSunDayInMar, 2, 0, 0);

//get first sunday in november
DateTime _tempDateNov = new DateTime(date.Year, 11, 1);
int firstSunDayInNov = (8 - (int)_tempDateNov.DayOfWeek);
_tempDateNov = new DateTime(date.Year, 11, firstSunDayInNov, 2, 0, 0);

return (date >= _tempDateMar && date <= _tempDateNov);
}

关于c# - 检查DateTime是否在特定范围内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8220830/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com