我一直在绞尽脑汁,但是星期五已经很晚了,我会围成一圈.
我需要为下拉列表创建一个工作周列表,并将周数作为值.所以代码会输出:
8月22日星期一 - 9月26日星期五8月
29日
星期一 - 9月2日星期五9月5日星期一 - 9月9日星期五
等等..
整整一年.任何想法我将如何实现这一目标?
谢谢.
spe*_*der 26
我认为以下代码符合ISO 8601:
var jan1 = new DateTime(DateTime.Today.Year , 1, 1);
//beware different cultures, see other answers
var startOfFirstWeek = jan1.AddDays(1 - (int)(jan1.DayOfWeek));
var weeks=
Enumerable
.Range(0,54)
.Select(i => new {
weekStart = startOfFirstWeek.AddDays(i * 7)
})
.TakeWhile(x => x.weekStart.Year <= jan1.Year)
.Select(x => new {
x.weekStart,
weekFinish=x.weekStart.AddDays(4)
})
.SkipWhile(x => x.weekFinish < jan1.AddDays(1) )
.Select((x,i) => new {
x.weekStart,
x.weekFinish,
weekNum=i+1
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12992 次 |
| 最近记录: |