【发布时间】:2012-08-10 00:41:15
【问题描述】:
我有一个星期数,我正在尝试创建函数来返回本周的第一天和最后一天。
例如,第 29 周的第一天是 2012-07-16,最后一天是 2012-07-22。
【问题讨论】:
-
对于给定的年份,我假设
我有一个星期数,我正在尝试创建函数来返回本周的第一天和最后一天。
例如,第 29 周的第一天是 2012-07-16,最后一天是 2012-07-22。
【问题讨论】:
这个怎么样:
int year = 2012;
int weekNumber = 29;
var thursdayInWeek01 = Enumerable.Range(1, 7).Select(i => new DateTime(year, 1, i))
.First(d => d.DayOfWeek == DayOfWeek.Thursday);
var thursdayInCorrectWeek = thursdayInWeek01.AddDays((weekNumber - 1) * 7);
var firstDay = thursdayInCorrectWeek.AddDays(-3);
var lastDay = thursdayInCorrectWeek.AddDays(3);
这是 ISO 风格的周数。
【讨论】: