📜  在 C# 中从给定日期查找一周中的第一个日期(1)

📅  最后修改于: 2023-12-03 15:07:37.517000             🧑  作者: Mango

在 C# 中从给定日期查找一周中的第一个日期

在 C# 中,我们可以使用 DateTime 类来查找给定日期所在周的第一个日期。以下是一个简单的代码示例。

DateTime date = new DateTime(2021, 1, 10);
DateTime firstDayOfWeek = date.AddDays(-(int)date.DayOfWeek);

上述代码中,我们首先创建了一个 DateTime 对象 date,表示给定的日期为 2021 年 1 月 10 日。接下来,我们使用 date.DayOfWeek 方法获取给定日期所在周的第几天(星期几),转换为一个整数。由于星期天为一周的第一天,我们需要将其转换为 0,因此使用了 (int) 强制类型转换。然后,我们使用 - 运算符来将日期往前移动到这一周的第一天,即减去当前日期所在周的第几天。最后,我们将结果存储在名为 firstDayOfWeek 的 DateTime 对象中。

在上述代码示例中,我们默认将星期日作为每周的第一天。如果需要将其它天作为第一天,可以使用 CultureInfo 类来指定不同的地区或语言环境。例如,以下代码可以将星期一作为一周的第一天:

DateTime date = new DateTime(2021, 1, 10);
DateTimeFormatInfo format = new DateTimeFormatInfo();
format.FirstDayOfWeek = DayOfWeek.Monday;
DateTime firstDayOfWeek = date.AddDays(-(int)date.DayOfWeek).AddDays((int)format.FirstDayOfWeek);

在上述代码中,我们使用了 DateTimeFormatInfo 类来创建一个新的格式化对象 format,并设置其 FirstDayOfWeek 属性为星期一。然后,我们将日期往前移动到所在周的第一天,并加上 format.FirstDayOfWeek 的值来获得每周的第一天。

以上就是在 C# 中从给定日期查找一周中的第一个日期的方法和示例代码。在实际应用中,我们只需要将给定日期作为参数传递给一个函数或方法,并使用上述代码来计算每周的第一天即可。