5

曜日を使用して日付を見つけるのに問題があります。

例:私は過去の日付を持っています

Date date= Convert.TodateTime("01/08/2013");

2013 年 1 月 8 日 曜日は火曜日です。

今、私は今週の火曜日の日付が欲しいです。どのように私はそれを行うことができます。

注 : 過去の日付は動的です。ループごとに変化します。

4

3 に答える 3

11

列挙DayOfWeekを使用できます

DayOfWeek 列挙体は、1 週間に 7 日あるカレンダーの曜日を表します。この列挙の定数の値は、DayOfWeek.Sunday から DayOfWeek.Saturday までの範囲です。整数にキャストする場合、その値の範囲は 0 (DayOfWeek.Sunday を示す) から 6 (DayOfWeek.Saturday を示す) までです。

整数への変換を使用して、同じ曜日の現在の日付との差を計算できます

DateTime dtOld = new DateTime(2013,1,8);
int num = (int)dtOld.DayOfWeek;
int num2 = (int)DateTime.Today.DayOfWeek;
DateTime result = DateTime.Today.AddDays(num - num2);

これは、拡張メソッドを作成するのにも適しているようです

public static class DateTimeExtensions
{
    public static DateTime EquivalentWeekDay(this DateTime dtOld)
    {
        int num = (int)dtOld.DayOfWeek;
        int num2 = (int)DateTime.Today.DayOfWeek;
        return DateTime.Today.AddDays(num - num2);
    }
}   

そして今、あなたはそれを呼び出すことができます

DateTime weekDay = Convert.ToDateTime("01/08/2013").EquivalentWeekDay();
于 2013-04-08T09:25:19.853 に答える
2

私はパーティーに少し遅れているかもしれませんが、私の解決策は非常に似ています:

DateTime.Today.AddDays(-(int)(DateTime.Today.DayOfWeek - DayOfWeek.Tuesday));

これにより、火曜日を見つけることが主な目標である今週の火曜日が取得されます(質問を誤解している可能性があります)。

于 2013-04-08T09:46:52.807 に答える