C#如何检查当前字符串的日期是否为今天?

时间:2009-10-07 23:04:57

标签: c# datetime

我的日期格式为“字符串(广义时间)”,请参阅MSDN linked here,我需要检查此日期是否为今天以及是否为X.

为了使这个稍微复杂化,我在这个例子4中有一个int,如果int是4那么我想检查过去4天中'String(Generalized-Time)'格式的日期是否是,int可能是7,24,30等。

我怎么写这个?我是新手,非常感谢你的帮助。

由于

2 个答案:

答案 0 :(得分:33)

像这样:

   DateTime dt;
   if (DateTime.TryParse(stringValue, out dt) && 
       dt.Date == DateTime.Today)
   {
       // do some stuff
   }

要检查它是否在过去四天内的任何时间,

   DateTime dt;
   if (DateTime.TryParse(stringValue, out dt) && 
       dt.Date > DateTime.Today.AddDays(-4f) &&
       dt < DateTime.Now)
   {
       // do some stuff
   }

或作为扩展方法

public static bool WithinPreviousPeriod(this DateTime dt, int daysBack)
{
     return dt.Date > DateTime.Today.AddDays(-daysBack))
             && dt < DateTime.Now;
}

答案 1 :(得分:6)

if(DateTime.Parse(yourString).Date == DateTime.Now.Date )
{
  //do something
}

应该看看今天是否是今天。但是这缺少错误检查(它假定yourString是一个有效的日期时间字符串)。

要做更复杂的检查,你可以这样做:

DateTime date = DateTime.Parse(yourString);
int dateOffset = 4;

if(date.Date >= DateTime.Now.AddDays(-dateOffset).Date)
{
//this date is within the range!
}