Skip to content

angularsen/PrettyPrintNet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

75 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PrettyPrint.NET

Human friendly, textual representations of TimeSpan and file size.

Install

To install PrettyPrint.NET, run the following command in the Package Manager Console or go to the NuGet site for the complete relase history.

Install-Package PrettyPrintNet

Build Targets:

  • .NET 3.5 Client
  • Portable .NET 4.0 Profile 328 (Silverlight 5, Win8, WinPhone8.1, WinPhoneSl8, Monotouch, Monoandroid)
  • Portable .NET 4.5 Profile 259 (Win8, WinPhone8.1, WinPhoneSl8, Monotouch, Monoandroid)

Features

TimeSpan.ToPrettyString()

var t = new TimeSpan(hours: 3, minutes: 4, seconds: 0);

// Default is 1 unit, long representation, use units from days to seconds, round smallest unit down
t.ToPrettyString();                                             // "3 hours"

// 3 units requested, but seconds is zero and skipped
t.ToPrettyString(3);                                            // "3 hours and 4 minutes"

// Four different unit representations
t.ToPrettyString(2, UnitStringRepresentation.Long);             // "3 hours and 4 minutes"
t.ToPrettyString(2, UnitStringRepresentation.Short);            // "3 hrs 4 mins"
t.ToPrettyString(2, UnitStringRepresentation.CompactWithSpace); // "3h 4m"
t.ToPrettyString(2, UnitStringRepresentation.Compact);          // "3h4m"

// Three types of rounding of the smallest unit, defaulting to 'ToNearestOrUp'
// As an example, ToTimeRemainingString() uses IntegerRounding.Up to not
// show "0 seconds" remaining when there is 0.9 seconds remaining.
var t2 = new TimeSpan(hours: 3, minutes: 30, seconds: 0);
t2.ToPrettyString(1, lowestUnitRounding: IntegerRounding.Down);          // "3 hours"
t2.ToPrettyString(1, lowestUnitRounding: IntegerRounding.Up);            // "4 hours"
t2.ToPrettyString(1, lowestUnitRounding: IntegerRounding.ToNearestOrUp); // "4 hours"

TimeSpan.ToTimeRemainingString()

This is helpful to avoid showing strings like "0 seconds remaining" or "9 seconds remaining" when it really is 9.999 seconds remaining. It basically just calls ToPrettyString() with IntegerRounding.Up.

TimeSpan.FromSeconds(  60.1).TotimeRemainingString(); // "1 minute and 1 second"
TimeSpan.FromSeconds(  60  ).TotimeRemainingString(); // "1 minute"
TimeSpan.FromSeconds(  59.9).TotimeRemainingString(); // "1 minute"
TimeSpan.FromSeconds(   1.1).TotimeRemainingString(); // "2 seconds"
TimeSpan.FromSeconds(   1  ).TotimeRemainingString(); // "1 second"
TimeSpan.FromSeconds(   0.1).TotimeRemainingString(); // "1 second"
TimeSpan.FromSeconds(   0  ).TotimeRemainingString(); // "0 seconds" 

TODO Document FileSizeExtensions

Other things to add

  • File transfer rate
  • Money
  • More cultures and translations

Already Well Covered

About

Human friendly, textual representations of duration, file size and transfer rate using standard .NET types.

Resources

License

Stars

Watchers

Forks

Packages

No packages published