【发布时间】:2021-07-30 12:30:44
【问题描述】:
我一直在寻找有关 stackoverflow 的信息,但我找不到如何在 C# 上解决以下问题。 我需要一种方法,我将发送一个 int(月份中的某天),它总是返回该天所属的一周中的星期一到星期五。
例如: 今天是 8 点,我需要该方法返回一个包含以下数字(3、4、5、6、7)的数组。
或者想象一下,即使它是 8,我发送给这个方法 19,它也会返回 (17, 18, 19, 20, 21) 对应17到周一,18到周二....
我没有任何代码,因为我不知道该怎么做。 希望你能帮助我!
非常感谢!
编辑:不只是发送日期,想象一下我发送一个简单的日期格式 08/05/2021
【问题讨论】:
-
你真的只发送月份中的某一天而不指定月份和年份吗?
-
你的一周从哪里开始?星期日?星期一?
-
是的,你是对的。没想到,看看我所做的编辑,想象我看到了简单的日期格式。一周从星期一开始。
-
如果我发送
1或31会怎样:我应该返回previuos(下一个)月份的天数吗? IE。int[] {29, 30, 1, 2, 3} -
每个日期时间都有一个名为DayOfWeek 的属性,您可以将其与the DayOfWeek enum 进行比较。现在可以使用 AddDays(-1) 将 DateTime 更改为之前的日期所以只需向后循环直到找到星期一枚举,此时您可以使用 AddDays(1) 轻松获得接下来的五天.来吧,让我们试试吧。你可以做到的