週の初めの日付時刻を取得するにはどうすればいいですか? 質問する

週の初めの日付時刻を取得するにはどうすればいいですか? 質問する

C# で現在の時刻だけを知りながら、週の始まり (日曜日と月曜日の両方) を見つけるにはどうすればよいですか?

何かのようなもの:

DateTime.Now.StartWeek(Monday);

ベストアンサー1

拡張メソッドを使用します。

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;
    }
}

以下のように使用できます。

DateTime dt = DateTime.Now.StartOfWeek(DayOfWeek.Monday);
DateTime dt = DateTime.Now.StartOfWeek(DayOfWeek.Sunday);

おすすめ記事