Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to check if a date has passed in C#?

Tags:

c#

.net

datetime

I'm reading the date expires cookie (2 hours) from database, and I need to check if this date has passed. What's the best way to do this?

For example:

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);
}

I'm looking for ideas as write the .HasPassed2hoursFrom method.

like image 554
Jack Avatar asked Oct 22 '11 01:10

Jack


3 Answers

public bool HasPassed2hoursFrom(DateTime fromDate, DateTime expireDate) 
{
    return expireDate - fromDate > TimeSpan.FromHours(2);
}
like image 118
Joao Avatar answered Nov 04 '22 04:11

Joao


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;
}

But since DateTime.Now is very fast and you don't need to pass it as function parameter...

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;
}
like image 21
Salvatore Previti Avatar answered Nov 04 '22 04:11

Salvatore Previti


bool HasPassed2hoursFrom(DateTime now, DateTime expires)
{
    return (now - expires).TotalHours >= 2;
}
like image 4
Marcel Valdez Orozco Avatar answered Nov 04 '22 06:11

Marcel Valdez Orozco