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

时间:2009-03-02 21:16:59

标签: date definition

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


背景

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

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


对于一个具体的例子,我将随机选择一个月: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

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

这个月的第一周是多少?

  1. 6月29日 - 7月5日 - 包含第一个
  2. 的那一周
  3. 7月6日 - 12日 - 这个月的第一周
  4. 第二周是第一个权利之后的第7天?

    本月的最后一周是什么时间?

    1. 7月27日 - 8月2日 - 同上但最后一天
    2. 7月20日 - 26日 - 同上,但上周
    3. 非欢迎评论

11 个答案:

答案 0 :(得分:11)

There is no answer because it varies even inside a country.

然而,this source似乎认为它是由ISO标准定义为包含星期四的第一周。但是,上述消息来源称ISO标准未列出“当月第一周”的规范


超过300个字符 - 抱歉!

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

  

日历周编号

     

根据第一个规则标识其日历年内的日历周的序号   一年的日历周是包括该年的第一个星期四和最后一个日历的日历   日历年的一周是紧接下一个日历年的第一个日历周之前的一周

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

答案 1 :(得分:6)

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

public Week GetFirstFullWeekOfMonth( DateTime forDate ) { }

public Week GetFirstPartialWeekOfMonth( DateTime forDate ) { }

或者

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

答案 2 :(得分:3)

该月的第一周是该月的第一周

  1. 7月6日 - 12日

答案 3 :(得分:2)

该月的第一周是包含第一周的那一周

  1. 6月29日 - 7月5日

答案 4 :(得分:2)

该月的最后一周是包含最后一天的一周

  1. 7月27日 - 8月2日

答案 5 :(得分:2)

该月的最后一周是该月的最后一周

  1. 7月20日 - 26日

答案 6 :(得分:1)

我的定义是第一周是本月第一个工作日的一周, 同样,上周是本月最后一个工作日的一周。

答案 7 :(得分:1)

该月的第一周是第0周 - 具有该月第一天的那一周。 上周是本月最后一天的一周

因此,7月最后一周的周数与8月第一周的周数相同

**除非**

有问题的月份在上周的最后一天结束,下一个月将在新一周的第一天开始并且具有不同的周数

:)

答案 8 :(得分:0)

该月的第一周是拥有定义的周期4天或更多天的第一周。 (不是真的,但我认为我会把它作为选项投入使用)

答案 9 :(得分:0)

你错过了一个相当明显的选择。该月的第一周是从该月的第一天开始的七天。因此,在您的示例中,第一周是星期二,即1日到星期一,7日。通过这种方式,第一到第四周将始终完全包含在该月内,并且只有第五周才能跨越。

答案 10 :(得分:0)

与您的用户交谈并询问他们当该计划向他们说“本月第一周”和“本月最后一周”时他们认为的含义。