https://github.com/angularsen/prettyprintnet
Human friendly, textual representations of duration, file size and transfer rate using standard .NET types.
https://github.com/angularsen/prettyprintnet
Last synced: 3 months ago
JSON representation
Human friendly, textual representations of duration, file size and transfer rate using standard .NET types.
- Host: GitHub
- URL: https://github.com/angularsen/prettyprintnet
- Owner: angularsen
- License: mit
- Created: 2013-08-16T18:11:49.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2016-01-12T13:00:54.000Z (about 10 years ago)
- Last Synced: 2025-01-30T21:49:59.120Z (12 months ago)
- Language: C#
- Homepage:
- Size: 1.56 MB
- Stars: 7
- Watchers: 3
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
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](http://docs.nuget.org/docs/start-here/using-the-package-manager-console) or go to the [NuGet site](https://www.nuget.org/packages/PrettyPrintNet/) for the complete relase history.

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()
```csharp
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```.
```csharp
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
====================
* Time of day, date and timezones by [DateTime](http://msdn.microsoft.com/en-us/library/system.datetime.aspx) or [NodaTime](https://www.nuget.org/packages/NodaTime)