从给定日期获取日期时间

时间:2012-06-05 13:40:17

标签: c# asp.net

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

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

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

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

  1. 创建日期枚举(即星期一 - 0,星期二 - 1等);
  2. 获取DateTime.Now DayOfWeek并以某种方式将其转换为您的枚举值。
  3. 计算Now.DayOfWeek与用户星期几之间的差异;
  4. 使用DateTime.AddDays(差异).DayofTheWeek;

答案 2 :(得分:0)

使用DateTime.now获取当前时间 当天是DateTime.Now.DayOfWeek
然后获取用户输入的星期几 然后你的结果是DateTime.now.AddDays(NowDayOfWeek - UserDayOfWeek)。