1

ユーザーは曜日を入力するだけです。たとえば、ユーザーは金曜日と入力します。特定の日の正確な日付を見つける必要があり、形式はのようになりますdd.MM.yyyy。しかし、私はそれをどのように行うのかわかりません。
例:

label1 - Friday (entered by user)
label2 - 08.06.2012 (found by system)

label1ただの文字列です(ちょうど金曜日)。これは、文字列変数としてWebサービスから取得されます。日付を見つけて今日と比較する必要があります。今日と同じか小さくない場合は、次の金曜日の日付を指定します。それ以外の場合は、翌週の金曜日の日付を指定します。

4

3 に答える 3

2

「今日と同じか小さくない場合は正確な日付を指定し、そうでない場合は来週の日付を指定します。」

これは、指定された曜日で将来常に次の日付に戻ることを意味すると仮定すると、唯一の例外は、今日が指定された曜日である場合です。

public static DateTime getNextWeekDaysDate(String englWeekDate)
{
    var desired = (DayOfWeek)Enum.Parse(typeof(DayOfWeek), englWeekDate);
    var current = DateTime.Today.DayOfWeek;
    int c = (int)current;
    int d = (int)desired;
    int n = (7 - c + d);

    return DateTime.Today.AddDays((n >= 7) ? n % 7 : n);
}

テストしてみましょう:

DateTime Monday   = getNextWeekDaysDate("Monday");    // 2012-06-11
DateTime Tuesday  = getNextWeekDaysDate("Tuesday");   // 2012-06-05  <-- !!! today
DateTime Wednesday= getNextWeekDaysDate("Wednesday"); // 2012-06-06
DateTime Thursday = getNextWeekDaysDate("Thursday");  // 2012-06-07
DateTime Friday   = getNextWeekDaysDate("Friday");    // 2012-06-08
于 2012-06-05T13:57:13.673 に答える
0
  1. 日の列挙型を作成します(つまり、月曜日-0、火曜日-1など)。
  2. DateTime.Now DayOfWeekを取得し、何らかの方法で列挙値にキャストします。
  3. Now.DayOfWeekとユーザーの曜日の差を計算します。
  4. DateTime.AddDays(difference).DayofTheWeek;を使用します。
于 2012-06-05T13:47:21.810 に答える
0

DateTime.nowで現在の時刻を取得します。
現在の日はDateTime.Now.DayOfWeekです。
次に、ユーザーが入力した曜日を取得し
ます。結果はDateTime.now.AddDays(NowDayOfWeek-UserDayOfWeek)です。

于 2012-06-05T13:47:36.433 に答える