title: TimeSpan "pretty time" format in C#
body: <p>Typing in the title to this question brought me to <a href="https://stackoverflow.com/questions/2058637/custome-format-timespan-with-string-format">this question</a>. I'm looking for the same thing, but something perhaps less statically formatted if you get what I mean?</p>
  
  <p>I'm writing a quick program that will be taking a TimeSpan duration of two DateTime objects and outputting them for printing to paper.</p>
  
  <p><strong>The format that would be preferred is: <code>XX days, YY hours, ZZ minutes</code> (seconds are irrelevant; as are days because I don't expect the timespan to incorporate more than a few hours).</strong></p>
  
  <p>Say the following code (as an example):</p>
  
  <pre><code>DateTime start = DateTime.Now;
  DateTime end = DateTime.Now.AddMinutes(135);
  TimeSpan duration = (end - start);
  
  // output duration as XX hours, YY minutes
  </code></pre>
  
  <p>Thanks,<br />
  Zack</p>
  
  <p>P.S.
  I also ran across "<a href="http://code.google.com/p/prettytimedotnet/" rel="noreferrer">PrettyTime.NET</a>", but it output things like "3 days ago", etc. Every other topic I found on google to format time duration strings like the above examples lead me to a Java-based solution. :\</p>
  
  <hr>
  
  <p><strong>UPDATE 2014-09-08:</strong></p>
  
  <p>To follow-up after 3 years, I've found an awesome library on NuGet and Github called "<a href="https://github.com/MehdiK/Humanizer" rel="noreferrer">Humanizer</a>" which would solve this issue I was having. I haven't used it that much, but I did try it and it works beautifully. It's quite large of a library though (it emits a whole ton of folders for different cultures to your project's build path (I'm sure there's a way to to customize it)).</p>