当前位置: C语言 -- 专题 -- 周为基础的年

周为基础的年

周为基础的年(week-based-year)与传统的年份表示稍有不同,其表示形式如下所示:

YYYY-Www  YYYYWww

YYYY-Www-D  YYYYWwwD

Www表示有字母W前缀的周数,取值范围为01-53,例如W01W53D表示星期几,取值范围为1-7,分别表示星期一到星期天。


关于第1周有多种表述:

1、包含一年中第一个星期四的那一周(ISO官方定义。)。

2、包含14号的那一周。

3、三天以上的天数都在新的一年的那一周。

4、如果前一年的1229号是星期一,从1229号到新的一年的14号的那一周。

根据上述表述,如果11日是星期一、星期二、星期三或者星期四,它所在的周就是第1周。如果11日是星期五、星期六或者星期天,它所在的周就是前一年的第52周或者53周。1228日所在的周总是一年的最后一周。


周数可以通过统计星期四来描述,例如第12周就包含了一年的第12个星期四。

ISO以周为基础的年开始于第1周的星期一,终止于新的一年前的最后一个星期天,一年包含52或者53周。


下面是传统日历和以周为基础的日历的转换例子:

传统日历 以周为基础的日历
2017年1月1日 星期天 2016-W53-7
2017年1月2日 星期一 2017-W01-1