C# で週の開始日を計算する
週の最初の曜日の決定は、スケジュールやデータ分析などの多くのアプリケーションにとって不可欠です。この記事では、C# で現在時刻を使用して週の開始日を計算する 2 つの方法を紹介します。
アプローチ 1: 拡張方法
拡張メソッドは、既存のクラスの機能を強化します。 クラスの拡張メソッドを作成して、週の開始を計算します。DateTime
<code class="language-csharp">public static class DateTimeExtensions { public static DateTime StartOfWeek(this DateTime dt, DayOfWeek startOfWeek) { int diff = (7 + (dt.DayOfWeek - startOfWeek)) % 7; return dt.AddDays(-1 * diff).Date; } }</code>
と希望の開始日 (例: DateTime
または DayOfWeek.Monday
) を受け取ります。 週の始まりに達するまでに減算するのに必要な日数を計算します。DayOfWeek.Sunday
アプローチ 2: クラスの使用Calendar
クラスは別のアプローチを提供します。Calendar
<code class="language-csharp">Calendar calendar = CultureInfo.CurrentCulture.Calendar; DateTime startOfWeek = calendar.GetWeekOfYear(DateTime.Now, CalendarWeekRule.FirstFullWeek, DayOfWeek.Monday);</code>
と希望する週の最初の日 (ここでは DateTime
) を指定して週の開始日を決定します。DayOfWeek.Monday
実装例
拡張メソッドは次のように使用されます:
<code class="language-csharp">DateTime dt = DateTime.Now.StartOfWeek(DayOfWeek.Monday); // Monday as the first day</code>
<code class="language-csharp">DateTime dt = DateTime.Now.StartOfWeek(DayOfWeek.Sunday); // Sunday as the first day</code>
概要
どちらの方法でも、週の開始日を効率的に決定できます。 最適な選択は、ニーズと必要な柔軟性によって異なります。以上がC# で週の始まりを決定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。