Wes*_*ley 7 .net c# datetime calendar date
可能重复:
在.net中,知道周数我怎样才能获得工作日日期?
你好,
我有一个问题,你好.我如何获得给定周数的日期范围.
例如:如果我输入第12周,则输出应为:
21-03-2011
22-03-2011
23-03-2011
24-03-2011
25-03-2011
26-03-2011
27-03-2011
Run Code Online (Sandbox Code Playgroud)
我真的希望你们可以帮助我,我只是无法找到任何地方的awnser!
提前致谢.
Joh*_*ren 12
注意
我似乎错过了错误.目前的代码已经更新至2012-01-30,以解释这一事实,我们现在
daysOffset根据Mikael Svenson的情况得出基于星期二的解决方案.
这些ISO8601周日计算有点不稳定,但这是你如何做到的:
DateTime jan1 = new DateTime(yyyy, 1, 1);
int daysOffset = DayOfWeek.Tuesday - jan1.DayOfWeek;
DateTime firstMonday = jan1.AddDays(daysOffset);
var cal = CultureInfo.CurrentCulture.Calendar;
int firstWeek = cal.GetWeekOfYear(jan1, CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday);
var weekNum = ww;
if (firstWeek <= 1)
{
weekNum -= 1;
}
var result = firstMonday.AddDays(weekNum * 7 + d - 1);
return result;
Run Code Online (Sandbox Code Playgroud)
基本上计算一个参考点,然后加上天数,这个问题与第53周有时可能发生在1月和第1周有时会在12月发生的事实有关.你需要调整它,这是一种方法.
上面的代码计算一年(yyyy)和周数(ww)和星期几(d)的日期.
| 归档时间: |
|
| 查看次数: |
16759 次 |
| 最近记录: |