当前位置:  开发笔记 > 编程语言 > 正文

一个月的第一个/最后一周是什么时候?

如何解决《一个月的第一个/最后一周是什么时候?》经验,为你挑选了2个好方法。

如果有人在某个月的第一周或最后一周说某些事情,你会如何定义这个范围?


背景

我正在研究一个需要以直观的方式处理这类事情的图书馆,但我的直觉并没有声称一个案例或另一个案例.

我可以让它选择不同的行为,但仍然需要一个良好的默认值.


举一个具体的例子,我将随机选择一个月:2008年7月

s  m  t  w  r  f  s
--------------------
      1  2  3  4  5
6  7  8  9  10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31

(注意:我假设一周从星期日开始,但问题也可以在周一提出)

什么跨度是这个月的第一周?

    6月29日 - 7月5日- 包括第一周的一周

    7月6日 - 12日- 这个的第一周

第二周是第一个权利之后的第7天?

这个月的最后一周有多长?

    7月27日 - 8月2日- 同上,但最后一天

    7月20日 - 26日- 同上,但是最后一周

非维基评论欢迎



1> Malfist..:

没有答案,因为它甚至在一个国家内也有所不同.

然而,这个消息来源似乎认为它是由ISO标准定义为包含星期四的第一周.但是上述消息来源说ISO标准没有列出"本月第一周"的规范


超过300个字符 - 抱歉!

ISO 8601标准定义了YEAR的第一周:

日历周号

根据一年中的第一个日历周是包括该年的第一个星期四以及日历年的最后一个日历周是紧接在该日之前的那一周的规则来标识其日历年内的日历周的序数.下一个日历年的第一个日历周

ISO 8601中没有关于本月第一周的内容,因为正如已经指出的那样,定义因国家而异(例如,甚至是公司).哦,标准说星期一星期开始.



2> tvanfosson..:

如果要构建库,则应允许用户选择如何处理它,方法是使用返回该月的第一个/最后一个完整/部分周的方法,或者通过传递一个参数来指示是否需要完整/部分周.如果您提供不需要规范的方法,请清楚地记录默认值.

public Week GetFirstFullWeekOfMonth( DateTime forDate ) { }

public Week GetFirstPartialWeekOfMonth( DateTime forDate ) { }

要么

public Week GetFirstWeekOfMonth( DateTime forDate, bool includePartial ) {}

推荐阅读
手机用户2402851155
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有