C # Как бы я проверить, если дата, которая в настоящее время является строкой, сегодня? - PullRequest
10 голосов
/ 08 октября 2009

У меня есть дата в формате «String (Generalized-Time)», см. MSDN, связанный здесь , мне нужно проверить, является ли эта дата сегодня и действительно ли это X.

Чтобы немного усложнить это, у меня есть int, которое в этом примере 4, если int равно 4, тогда я хочу проверить, соответствует ли дата в формате «String (Generalized-Time)» за последние 4 дня Int может быть 7, 24, 30 и т. д.

Как бы я это написал? Я новичок и очень благодарен за помощь.

Спасибо

Ответы [ 2 ]

33 голосов
/ 08 октября 2009

Как это:

   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;
}
6 голосов
/ 08 октября 2009
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!
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...