用 C# 计算一周的开始日期
许多编程任务需要确定一周的开始。虽然 C# 没有为此提供内置函数,但我们可以使用扩展方法轻松创建一个函数。
扩展方法增强现有类而不改变其原始代码。 我们将在静态类中定义扩展方法来扩展 DateTime
类:
<code class="language-csharp">public static class DateTimeExtensions { public static DateTime StartOfWeek(this DateTime dt, DayOfWeek startOfWeek = DayOfWeek.Monday) { int diff = (7 + (dt.DayOfWeek - startOfWeek)) % 7; return dt.AddDays(-1 * diff).Date; } }</code>
StartOfWeek
方法根据提供的 DateTime
参数生成一个新的 startOfWeek
对象,表示一周的开始。 默认为星期一。要使用星期日作为开始,请传递 DayOfWeek.Sunday
作为参数。
使用扩展方法很简单:
<code class="language-csharp">DateTime dt = DateTime.Now.StartOfWeek(); // Defaults to Monday</code>
这将返回本周(星期一)的开始。 从周日开始一周:
<code class="language-csharp">DateTime dt = DateTime.Now.StartOfWeek(DayOfWeek.Sunday);</code>
以上是如何开始 C# 的一周?的详细内容。更多信息请关注PHP中文网其他相关文章!