title: TimeSpan to friendly string library (C#)
body: <p>Does anyone know of a good library (or code snippet) for converting a TimeSpan object to a "friendly" string such as:</p>
  
  <ul>
  <li>Two years, three months and four days</li>
  <li>One week and two days</li>
  </ul>
  
  <p>(It's for a document expiry system, where the expiry could be anything from a few days to several decades)</p>
  
  <p>Just to clarify, say I had a TimeSpan with 7 days, that should print "1 week", 14 days "2 weeks", 366 days "1 year and 1 day", etc etc.</p>