Possible Duplicates:
Fuzzy date algorithm
How do I calculate relative time?
Hi,
How-to format datetime like SO ?
1 minute ago
1 hour ago
asked Aug 15 at 15:00
Possible Duplicates:
Fuzzy date algorithm
How do I calculate relative time?
Hi,
How-to format datetime like SO ?
1 minute ago
1 hour ago
asked Aug 15 at 15:00
First thing you need to do is determine the difference in dates.
Use the Subtract() method on your DateTime.  It returns a TimeSpan, which is handy for your needs.
TimeSpan mySpan = DateTime.Now.Subtract( myPostedDate );
Then, you'll need to find the most significant non-zero time element. If you're dealing with days, things are easy. Smaller denominations require a little more work. Code included.
TimeSpan mySpan = DateTime.Now.Subtract(myRecorded);
string  myDenom = 
  mySpan.Days    > 0 ? "day" : 
  mySpan.Hours   > 0 ? "hour" : 
  mySpan.Minutes > 0 ? "minute" : "second";
string myOutput = String.Empty;
int myNumeral;
// if we're dealing with days, a format string will suffice
if (myDenom == "day")
{
    // HH - 24 hour clock
    myOutput = String.Format("{0:MMM dd} at {0:HH}:{0:mm}", myRecorded);
}
else
{
    // put the right denomination into myNumeral
    switch (myDenom)
    {
        case "second":
            myNumeral = mySpan.Seconds;
            break;
        case "minute":
            myNumeral = mySpan.Minutes;
            break;
        default:
            myNumeral = mySpan.Hours;
            break;
    }
    // add an s to myNumeral when > 1
    myDenom += (myNumeral > 1) ? "s" : String.Empty;
    myOutput = String.Format("{0} {1} ago", myNumeral, myDenom);
}
// myOutput now contains formatted string
 
    
    Check out DateTime.ToString() Patterns. If there isn't anything you like, you can specify it yourself.
