Ruby has a nifty little function called time_ago_in_words. You pass it an arbitrary number of seconds and it gives you back something friendly like “about 2 weeks ago”.
Today, I implemented a similar routine for .NET.
To use it, just include the namespace, then call ToHumanTime() on a TimeSpan object.
If you want more of an idea of what it generates, take a look at the test suite.