Date 一个月的第一周/最后一周是什么?
如果有人说某个月的第一周或最后一周发生了什么事,你会如何定义这段时间Date 一个月的第一周/最后一周是什么?,date,definition,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
背景 我正在研究一个图书馆,它需要以一种直观的方式来处理这类事情,但我的直觉并不能说明这两种情况 我可以让它选择不同的行为,但仍然需要一个好的默认值
举一个具体的例子,我将随机选取一个月: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
(注意:我假设本周从星期天开始,但问题也可以在星期一再问)
一个月的第一周是多少
欢迎非维基评论一个月的第一周是包括第一周在内的一周
一个月的第一周是这个月的第一周
一个月的最后一周是包含最后一天的一周
本月的最后一周是本月的最后一周
我的定义是第一周是一个月中第一个工作日的一周, 同样,最后一周也是该月最后一个工作日的一周。 然而,似乎认为它被ISO标准定义为包含星期四的第一周。然而,上述消息来源称,ISO标准并未列出“每月第一周”的规范
超过300个字符-对不起 ISO 8601标准将一年中的第一周定义为: 日历周数 序数,根据第一个日历周 一年中的日历周包括该年的第一个星期四和最后一个日历 日历年的周是下一日历年的第一个日历周之前的一周
ISO 8601中没有关于一个月的第一周的内容,因为如前所述,定义因国家而异(例如,甚至因公司而异)。哦,标准上说星期从星期一开始。如果你正在构建一个库,你应该允许用户选择他们想要如何处理它,方法可以返回一个月的第一个/最后一个完整/部分星期,或者通过传递一个参数指示你是否想要完整/部分星期。如果您提供的方法不需要规范,请清楚地记录默认值
public Week GetFirstFullWeekOfMonth( DateTime forDate ) { }
public Week GetFirstPartialWeekOfMonth( DateTime forDate ) { }
或
一个月的第一周是定义周周期中拥有4天或更多天的第一周。(不是真的,但我想我会把它作为一种选择)有一个相当明显的选择,你缺少了。一个月的第一周是从一个月的第一天开始的七天。因此,在您的示例中,第一周是星期二,从1号到7号星期一。这样,第一到第四周将始终完全包含在该月内,只有第五周将跨越。该月的第一周是第0周-该月的第一天所在的一周。 最后一周是一个月最后一天所在的一周 因此,7月最后一周的周数与8月第一周的周数相同 **除非** 所讨论的月份在最后一周的最后一天结束,在这种情况下,下一个月将从新的一周的第一天开始,并具有不同的周数
:)与您的用户交谈,并询问他们当程序对他们说“本月第一周”和“本月最后一周”时,他们认为这意味着什么。如果您希望得到wiki的答案,请将其设为wiki问题。否则,这似乎是一场声誉游戏。还有,你为什么不使用一个现成的库呢?我正在构建一个日期解析器,但没有找到任何足够好的方法。我不是在寻找wiki的答案。我加上的那个只是为了投票。你应该把你的问题变成CWwell@TheTXI:为什么?(我很好奇,不是出于防御)好吧,我想这才是真正的答案。现在,您/希望/它是什么?这无助于日期解析库的开发。“ISO 8601中没有关于一个月的第一周的内容”-虽然这可能是真的,但这意味着一个月的第一周必须遵循与一年的第一周相同的ISO规则。其他任何事情都可能导致荒谬的情况,即一年中的第一周不是一月份的第一周(在同一标准中)。(是的,似乎10年过去了,这仍然是一个未澄清的问题。)我没有想到那一个。。。嗯……注意到了。现在我应该使用什么默认值?我可能会默认为第一周/最后一周,并允许用户选择是否需要部分周。我不知道为什么这会被否决。。。这是我一直使用的定义。所有其他的解释对我来说都没有任何意义。只要这个月的最后一周是完全包含在这个月内的最后一周,你就可以使用它;否则的话,你会有间隔——两周都不属于这两个月。我曾想过这一个,但拒绝了它,认为这是一个无用的选择:谁会使用这个选项,在哪里?在正确+相关之后,我宁愿在正确+无关之前先不正确+相关。我不知道你的库将用于什么,所以我不知道什么是相关的,什么是不相关的。仅仅指出还有第三种选择,再加上“本月的最后一周是本月的最后一周”,就留下了一个1周的空白
public Week GetFirstWeekOfMonth( DateTime forDate, bool includePartial ) {}