计算即将到来的星期几的日期时间

时间:2013-12-05 03:43:05

标签: c# date dayofweek

这是我目前的代码:

String getDayRequested;
public void setDay(String getDayFromForm1)
{
   getDayRequested = getDayFromForm1;
   {
      if (getDayRequested.Contains("today"))
      {
         getDayRequested = DateTime.Today.DayOfWeek.ToString();
      }
      else if (getDayRequested.Contains("tomorrow"))
      {
         getDayRequested = DateTime.Today.AddDays(1).DayOfWeek.ToString();
   }
}

这将从Form1检查我的TextBox.Text字符串,并检查文本“今天”或“明天”是否在其中。

任何人都可以帮助我正确指导如何检查字符串以获取有关即将到来的日子的信息;即:“这个星期六的日期是什么”,并根据询问的日期添加适当的天数。

更新

使用接受答案中的代码,我在上面的 else if 语句中使用了以下内容来完成我的目标:

else if (getDayRequested.Contains("monday"))
{
   getDayRequested = GetFutureDay(DateTime.Now, DayOfWeek.Monday).ToString("dd");
}

2 个答案:

答案 0 :(得分:3)

这个方便的小方法将返回一周中的未来日期。

public DateTime GetFutureDay(DateTime start, DayOfWeek day)
{
    int daysToAdd = (day - start.DayOfWeek + 7) % 7;
    return start.AddDays(daysToAdd);
}

它会被称为:

var day = (DayOfWeek)Enum.Parse(typeof(DayOfWeek), getDayFromForm1);
var getDayRequested = GetFutureDay(DateTime.Now, day);

答案 1 :(得分:1)

考虑以下代码片段......

DateTime date;
public void setDay(String day)
{
    DayOfWeek futureDay = (DayOfWeek)Enum.Parse(typeof(DayOfWeek), day);
    int futureDayValue = (int)futureDay;
    int currentDayValue = (int)DateTime.Now.DayOfWeek;
    int dayDiff = futureDayValue - currentDayValue;
    if (dayDiff > 0)
    {
        date = DateTime.Now.AddDays(dayDiff);
    }
    else
    {
        date = DateTime.Now.AddDays(dayDiff + 7);
    }


}

祝你好运!