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

10 c# datetime

我有一个名为'String(Generalized-Time)'的格式的日期,请参阅此处链接的MSDN,我需要检查此日期是否为今天以及是否为X.

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

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

谢谢

Cha*_*ana 33

像这样:

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

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

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

或者,作为一种扩展方法

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


Ala*_*lan 6

if(DateTime.Parse(yourString).Date == DateTime.Now.Date )
{
  //do something
}
Run Code Online (Sandbox Code Playgroud)

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

要执行更复杂的检查,您可以执行以下操作:

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

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