获取星期的名单一年 - 与日期 [英] Get a list of weeks for a year - with dates

查看:106
本文介绍了获取星期的名单一年 - 与日期的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经绞尽脑汁了这一点,但它的晚在星期五,我转圈圈。

I've been racking my brains over this, but it's late on a Friday and I'm going round in circles.

我需要创建工作周列表下拉列表,为期一周的数字作为值。因此,code将输出:

I need to create a list of working weeks for a drop down list, with the week number as the value. So the code would output:

周一8月22日 - 周五9月26日
周一8月29日 - 周五9月2日
周一9月5日 - 星期五9月9日

Monday 22nd August - Friday 26th September
Monday 29th August - Friday 2 September
Monday 5th September - Friday 9 September

等。

有关全年。任何想法,我将如何实现这一目标?

For the whole year. Any ideas how I would achieve this?

感谢。

推荐答案

我觉得code以下符合 ISO 8601

I think the code below complies with 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
        });

这篇关于获取星期的名单一年 - 与日期的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆