Как проверить, прошла ли дата на C #?

Я читаю дату истекает cookie (2 часа) из базы данных. Мне нужно проверить, прошла ли эта дата, каков наилучший способ сделать это?

Например:

 public bool HasExpired(DateTime now)
        {
            string expires = ReadDateFromDataBase(); // output example: 21/10/2011 21:31:00
            DateTime Expires = DateTime.Parse(expires);
            return HasPassed2hoursFrom(now, Expires);

        }

Я ищу идеи, как написать .HasPassed2hoursFromметод.

будут также оценены другие способы решения этой проблемы. Заранее спасибо.

c#,.net,datetime,

6

Ответов: 6


10 принят
public bool HasPassed2hoursFrom(DateTime fromDate, DateTime expireDate) 
{
    return expireDate - fromDate > TimeSpan.FromHours(2);
}

2

Периодически проверяйте дату и смотрите, если now.CompareTo(expires) > 0


2
public bool HasExpired(DateTime now)
{
    string expires = ReadDateFromDataBase(); // output example: 21/10/2011 21:31:00
    DateTime Expires = DateTime.Parse(expires);
    return now.CompareTo(Expires.Add(new TimeSpan(2, 0, 0))) > 0;
}

Но поскольку DateTime.Now очень быстрый, и вам не нужно передавать его в качестве параметра функции ...

public bool HasExpired()
{
    string expires = ReadDateFromDataBase(); // output example: 21/10/2011 21:31:00
    DateTime Expires = DateTime.Parse(expires);
    return DateTime.Now.CompareTo(Expires.Add(new TimeSpan(2, 0, 0))) > 0;
}

2
bool HasPassed2hoursFrom(DateTime now, DateTime expires)
{
    return (now - expires).TotalHours >= 2;
}

0

Вы можете просто использовать операторов

boolean hasExpired = now >= Expires;
C # ,. сети, дата и время,
Похожие вопросы