1

用户只需输入星期几。例如用户输入星期五。我需要找到给定日期的确切日期,格式如下dd.MM.yyyy。但我不知道我是怎么做到的。
例子:

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

label1只是一个字符串(只是星期五)。它来自 webservice 作为字符串变量。我需要找到日期并与今天进行比较,如果它不等于或小于今天,我给出即将到来的星期五的日期,否则我给出下一周星期五的日期。

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 回答