diff --git a/ArchiSteamFarm/ArchiSteamFarm.csproj b/ArchiSteamFarm/ArchiSteamFarm.csproj
index 04d48270d..7bdf29ccd 100644
--- a/ArchiSteamFarm/ArchiSteamFarm.csproj
+++ b/ArchiSteamFarm/ArchiSteamFarm.csproj
@@ -79,10 +79,6 @@
..\packages\HtmlAgilityPack.1.4.9.5\lib\Net45\HtmlAgilityPack.dll
True
-
- ..\packages\Humanizer.Core.2.1.0\lib\netstandard1.0\Humanizer.dll
- True
-
..\packages\Newtonsoft.Json.9.0.2-beta1\lib\net45\Newtonsoft.Json.dll
True
diff --git a/ArchiSteamFarm/Utilities.cs b/ArchiSteamFarm/Utilities.cs
index 4ef136f66..9eabb985f 100644
--- a/ArchiSteamFarm/Utilities.cs
+++ b/ArchiSteamFarm/Utilities.cs
@@ -27,7 +27,7 @@ using System.Diagnostics.CodeAnalysis;
using System.Linq;
using System.Net;
using System.Runtime.CompilerServices;
-using Humanizer;
+using System.Text;
namespace ArchiSteamFarm {
internal static class Utilities {
@@ -73,6 +73,52 @@ namespace ArchiSteamFarm {
}
}
- internal static string ToHumanReadable(this TimeSpan timeSpan) => timeSpan.Humanize(3, true);
+ internal static string ToHumanReadable(this TimeSpan timeSpan) {
+ // It's really dirty, I'd appreciate a lot if C# offered nice TimeSpan formatting by default
+ // Normally I'd use third-party library like Humanizer, but using it only for this bit is not worth it
+ // Besides, ILRepack has problem merging it's library due to referencing System.Runtime
+
+ StringBuilder result = new StringBuilder();
+
+ if (timeSpan.Days > 0) {
+ result.Append(" " + timeSpan.Days + " day");
+
+ if (timeSpan.Days > 1) {
+ result.Append('s');
+ }
+
+ result.Append(',');
+ }
+
+ if (timeSpan.Hours > 0) {
+ result.Append(" " + timeSpan.Hours + " hour");
+ if (timeSpan.Hours > 1) {
+ result.Append('s');
+ }
+
+ result.Append(',');
+ }
+
+ if (timeSpan.Seconds > 0) {
+ result.Append(" " + timeSpan.Hours + " second");
+ if (timeSpan.Seconds > 1) {
+ result.Append('s');
+ }
+
+ result.Append(',');
+ }
+
+ if (result.Length <= 1) {
+ return "";
+ }
+
+ // Get rid of initial space
+ result.Remove(0, 1);
+
+ // Get rid of last comma
+ result.Length--;
+
+ return result.ToString();
+ }
}
}
\ No newline at end of file
diff --git a/ArchiSteamFarm/packages.config b/ArchiSteamFarm/packages.config
index 89c71218c..295300dba 100644
--- a/ArchiSteamFarm/packages.config
+++ b/ArchiSteamFarm/packages.config
@@ -3,7 +3,6 @@
-
diff --git a/GUI/GUI.csproj b/GUI/GUI.csproj
index 85d50c474..05c79f519 100644
--- a/GUI/GUI.csproj
+++ b/GUI/GUI.csproj
@@ -48,10 +48,6 @@
..\packages\HtmlAgilityPack.1.4.9.5\lib\Net45\HtmlAgilityPack.dll
True
-
- ..\packages\Humanizer.Core.2.1.0\lib\netstandard1.0\Humanizer.dll
- True
-
..\packages\Newtonsoft.Json.9.0.2-beta1\lib\net45\Newtonsoft.Json.dll
True
diff --git a/GUI/packages.config b/GUI/packages.config
index e7a28f604..60cca0c67 100644
--- a/GUI/packages.config
+++ b/GUI/packages.config
@@ -3,7 +3,6 @@
-
diff --git a/packages/Humanizer.Core.2.1.0/Humanizer.Core.2.1.0.nupkg b/packages/Humanizer.Core.2.1.0/Humanizer.Core.2.1.0.nupkg
deleted file mode 100644
index 3930a85d3..000000000
Binary files a/packages/Humanizer.Core.2.1.0/Humanizer.Core.2.1.0.nupkg and /dev/null differ
diff --git a/packages/Humanizer.Core.2.1.0/lib/netstandard1.0/Humanizer.dll b/packages/Humanizer.Core.2.1.0/lib/netstandard1.0/Humanizer.dll
deleted file mode 100644
index 5fc964d40..000000000
Binary files a/packages/Humanizer.Core.2.1.0/lib/netstandard1.0/Humanizer.dll and /dev/null differ
diff --git a/packages/Humanizer.Core.2.1.0/lib/netstandard1.0/Humanizer.xml b/packages/Humanizer.Core.2.1.0/lib/netstandard1.0/Humanizer.xml
deleted file mode 100644
index 2fd92593b..000000000
--- a/packages/Humanizer.Core.2.1.0/lib/netstandard1.0/Humanizer.xml
+++ /dev/null
@@ -1,5526 +0,0 @@
-
-
-
- Humanizer
-
-
-
-
- Class to hold a ByteSize and a measurement interval, for the purpose of calculating the rate of transfer
-
-
-
-
- Quantity of bytes
-
-
-
-
-
- Interval that bytes were transferred in
-
-
-
-
-
- Create a ByteRate with given quantity of bytes across an interval
-
-
-
-
-
-
- Calculate rate for the quantity of bytes and interval defined by this instance
-
- Unit of time to calculate rate for (defaults is per second)
-
-
-
-
- Calculate rate for the quantity of bytes and interval defined by this instance
-
- Unit of time to calculate rate for (defaults is per second)
- The string format to use for the number of bytes
-
-
-
-
- Represents a byte size value.
-
-
-
-
- Converts the value of the current ByteSize object to a string.
- The metric prefix symbol (bit, byte, kilo, mega, giga, tera) used is
- the largest metric prefix such that the corresponding value is greater
- than or equal to one.
-
-
-
-
- Humanizes an IEnumerable into a human readable list
-
-
-
-
- Formats the collection for display, calling ToString() on each object and
- using the default separator for the current culture.
-
-
-
-
-
- Formats the collection for display, calling `objectFormatter` on each object
- and using the default separator for the current culture.
-
-
-
-
-
- Formats the collection for display, calling ToString() on each object
- and using the provided separator.
-
-
-
-
-
- Formats the collection for display, calling `objectFormatter` on each object
- and using the provided separator.
-
-
-
-
-
- A registry of localised system components with their associated locales
-
-
-
-
-
- Creates a localiser registry with the default localiser set to the provided value
-
-
-
-
-
- Creates a localiser registry with the default localiser factory set to the provided value
-
-
-
-
-
- Gets the localiser for the current thread's UI culture
-
-
-
-
- Gets the localiser for the specified culture
-
- The culture to retrieve localiser for. If not specified, current thread's UI culture is used.
-
-
-
- Registers the localiser for the culture provided
-
-
-
-
- Registers the localiser factory for the culture provided
-
-
-
-
- Provides a configuration point for Humanizer
-
-
-
-
- A registry of formatters used to format collections based on the current locale
-
-
-
-
- A registry of formatters used to format strings based on the current locale
-
-
-
-
- A registry of number to words converters used to localise ToWords and ToOrdinalWords methods
-
-
-
-
- A registry of ordinalizers used to localise Ordinalize method
-
-
-
-
- The formatter to be used
-
- The culture to retrieve formatter for. Null means that current thread's UI culture should be used.
-
-
-
- The converter to be used
-
- The culture to retrieve number to words converter for. Null means that current thread's UI culture should be used.
-
-
-
- The ordinalizer to be used
-
-
-
-
- The strategy to be used for DateTime.Humanize
-
-
-
-
- The strategy to be used for DateTimeOffset.Humanize
-
-
-
-
- A predicate function for description property of attribute to use for Enum.Humanize
-
-
-
-
- Algorithms used to convert distance between two dates into words.
-
-
-
-
- Returns localized & humanized distance of time between two dates; given a specific precision.
-
-
-
-
- Calculates the distance of time in words between two provided dates
-
-
-
-
- The default 'distance of time' -> words calculator.
-
-
-
-
- Calculates the distance of time in words between two provided dates
-
-
-
-
- The default 'distance of time' -> words calculator.
-
-
-
-
- Calculates the distance of time in words between two provided dates
-
-
-
-
- Implement this interface to create a new strategy for DateTime.Humanize and hook it in the Configurator.DateTimeOffsetHumanizeStrategy
-
-
-
-
- Calculates the distance of time in words between two provided dates used for DateTimeOffset.Humanize
-
-
-
-
- Precision-based calculator for distance between two times
-
-
-
-
- Constructs a precision-based calculator for distance of time with default precision 0.75.
-
- precision of approximation, if not provided 0.75 will be used as a default precision.
-
-
-
- Returns localized & humanized distance of time between two dates; given a specific precision.
-
-
-
-
- Implement this interface to create a new strategy for DateTime.Humanize and hook it in the Configurator.DateTimeHumanizeStrategy
-
-
-
-
- Calculates the distance of time in words between two provided dates used for DateTime.Humanize
-
-
-
-
- Precision-based calculator for distance between two times
-
-
-
-
- Constructs a precision-based calculator for distance of time with default precision 0.75.
-
- precision of approximation, if not provided 0.75 will be used as a default precision.
-
-
-
- Returns localized & humanized distance of time between two dates; given a specific precision.
-
-
-
-
- Container for registered Vocabularies. At present, only a single vocabulary is supported: Default.
-
-
-
-
- The default vocabulary used for singular/plural irregularities.
- Rules can be added to this vocabulary and will be picked up by called to Singularize() and Pluralize().
- At this time, multiple vocabularies and removing existing rules are not supported.
-
-
-
-
- A container for exceptions to simple pluralization/singularization rules.
- Vocabularies.Default contains an extensive list of rules for US English.
- At this time, multiple vocabularies and removing existing rules are not supported.
-
-
-
-
- Adds a word to the vocabulary which cannot easily be pluralized/singularized by RegEx, e.g. "person" and "people".
-
- The singular form of the irregular word, e.g. "person".
- The plural form of the irregular word, e.g. "people".
- True to match these words on their own as well as at the end of longer words. False, otherwise.
-
-
-
- Adds an uncountable word to the vocabulary, e.g. "fish". Will be ignored when plurality is changed.
-
- Word to be added to the list of uncountables.
-
-
-
- Adds a rule to the vocabulary that does not follow trivial rules for pluralization, e.g. "bus" -> "buses"
-
- RegEx to be matched, case insensitive, e.g. "(bus)es$"
- RegEx replacement e.g. "$1"
-
-
-
- Adds a rule to the vocabulary that does not follow trivial rules for singularization, e.g. "vertices/indices -> "vertex/index"
-
- RegEx to be matched, case insensitive, e.g. ""(vert|ind)ices$""
- RegEx replacement e.g. "$1ex"
-
-
-
- Pluralizes the provided input considering irregular words
-
- Word to be pluralized
- Normally you call Pluralize on singular words; but if you're unsure call it with false
-
-
-
-
- Singularizes the provided input considering irregular words
-
- Word to be singularized
- Normally you call Singularize on plural words; but if you're unsure call it with false
-
-
-
-
- An interface you should implement to localize Humanize for collections
-
-
-
-
- Formats the collection for display, calling ToString() on each object.
-
-
-
-
-
- Formats the collection for display, calling `objectFormatter` on each object.
-
-
-
-
-
- Formats the collection for display, calling ToString() on each object
- and using `separator` before the final item.
-
-
-
-
-
- Formats the collection for display, calling `objectFormatter` on each object
- and using `separator` before the final item.
-
-
-
-
-
- Default implementation of IFormatter interface.
-
-
-
-
- Constructor.
-
- Name of the culture to use.
-
-
-
- Now
-
- Returns Now
-
-
-
- Never
-
- Returns Never
-
-
-
- Returns the string representation of the provided DateTime
-
-
-
-
-
-
-
-
- 0 seconds
-
- Returns 0 seconds as the string representation of Zero TimeSpan
-
-
-
- Returns the string representation of the provided TimeSpan
-
- Must be less than or equal to TimeUnit.Week
-
-
- Is thrown when timeUnit is larger than TimeUnit.Week
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Override this method if your locale has complex rules around multiple units; e.g. Arabic, Russian
-
- The resource key that's being in formatting
- The number of the units being used in formatting
-
-
-
-
-
-
-
-
-
-
-
- Implement this interface if your language has complex rules around dealing with numbers.
- For example in Romanian "5 days" is "5 zile", while "24 days" is "24 de zile" and
- in Arabic 2 days is يومين not 2 يوم
-
-
-
-
- Now
-
- Returns Now
-
-
-
- Never
-
- Returns Never
-
-
-
- Returns the string representation of the provided DateTime
-
-
-
-
-
-
-
-
- 0 seconds
-
- Returns 0 seconds as the string representation of Zero TimeSpan
-
-
-
- Returns the string representation of the provided TimeSpan
-
-
-
-
-
-
-
- Converts the number to string using the locale's default grammatical gender
-
-
-
-
-
-
- Converts the number to string using the provided grammatical gender
-
-
-
-
-
-
-
- Converts the number to ordinal string using the locale's default grammatical gender
-
-
-
-
-
-
- Converts the number to ordinal string using the provided grammatical gender
-
-
-
-
-
-
-
- Converts the number to string
-
-
-
-
-
-
- Converts the number to string ignoring the provided grammatical gender
-
-
-
-
-
-
-
- Converts the number to ordinal string
-
-
-
-
-
-
- Converts the number to ordinal string ignoring the provided grammatical gender
-
-
-
-
-
-
-
- Lookup table converting units number to text. Index 1 for 1, index 2 for 2, up to index 9 for 9.
-
-
-
-
- Lookup table converting teens number to text. Index 0 for 10, index 1 for 11, up to index 9 for 19.
-
-
-
-
- Lookup table converting tens number to text. Index 2 for 20, index 3 for 30, up to index 9 for 90.
-
-
-
-
- Enumerates sets of three-digits having distinct conversion to text.
-
-
-
-
- Lowest three-digits set, from 1 to 999.
-
-
-
-
- Three-digits set counting the thousands, from 1'000 to 999'000.
-
-
-
-
- Three-digits set counting millions, from 1'000'000 to 999'000'000.
-
-
-
-
- Three-digits set counting billions, from 1'000'000'000 to 999'000'000'000.
-
-
-
-
- Three-digits set beyond 999 billions, from 1'000'000'000'000 onward.
-
-
-
-
- Splits a number into a sequence of three-digits numbers,
- starting from units, then thousands, millions, and so on.
-
- The number to split.
- The sequence of three-digit numbers.
-
-
-
- During number conversion to text, finds out the converter
- to use for the next three-digit set.
-
- The next conversion function to use.
-
-
-
- Converts a three-digit set to text.
-
- The three-digit set to convert.
- The grammatical gender to convert to.
- True if the current three-digit set is the last in the word.
- The same three-digit set expressed as text.
-
-
-
- Converts a three-digit number, as units, to text.
-
- The three-digit number, as units, to convert.
- The grammatical gender to convert to.
- The same three-digit number, as units, expressed as text.
-
-
-
- Converts a thousands three-digit number to text.
-
- The three-digit number, as thousands, to convert.
- The grammatical gender to convert to.
- The same three-digit number of thousands expressed as text.
-
-
-
- Converts a millions three-digit number to text.
-
- The three-digit number, as millions, to convert.
- The grammatical gender to convert to.
- The same three-digit number of millions expressed as text.
-
-
-
- Converts a billions three-digit number to text.
-
- The three-digit number, as billions, to convert.
- The grammatical gender to convert to.
- The same three-digit number of billions expressed as text.
-
-
-
- Lookup table converting units number to text. Index 1 for 1, index 2 for 2, up to index 9.
-
-
-
-
- Dutch spelling of numbers is not really officially regulated.
- There are a few different rules that can be applied.
- Used the rules as stated here.
- http://www.beterspellen.nl/website/?pag=110
-
-
-
-
- Constructor.
-
- Culture to use.
-
-
-
- 3501.ToWords() -> "three thousand five hundred and one"
-
- Number to be turned to words
-
-
-
-
- 1.ToOrdinalWords() -> "first"
-
- Number to be turned to ordinal words
-
-
-
-
- Splits a number into a sequence of three-digits numbers, starting
- from units, then thousands, millions, and so on.
-
- The number to split.
- The sequence of three-digit numbers.
-
-
-
- During number conversion to text, finds out the converter to use
- for the next three-digit set.
-
- The next conversion function to use.
-
-
-
- Converts a three-digit set to text.
-
- The three-digit set to convert.
- True if the current three-digit set is the last in the word.
- The same three-digit set expressed as text.
-
-
-
- Converts a three-digit number, as units, to text.
-
- The three-digit number, as units, to convert.
- The same three-digit number, as units, expressed as text.
-
-
-
- Converts a thousands three-digit number to text.
-
- The three-digit number, as thousands, to convert.
- The same three-digit number of thousands expressed as text.
-
-
-
- Converts a millions three-digit number to text.
-
- The three-digit number, as millions, to convert.
- The same three-digit number of millions expressed as text.
-
-
-
- Converts a billions three-digit number to text.
-
- The three-digit number, as billions, to convert.
- The same three-digit number of billions expressed as text.
-
-
-
- Lookup table converting units number to text. Index 1 for 1, index 2 for 2, up to index 9.
-
-
-
-
- Lookup table converting tens number to text. Index 2 for 20, index 3 for 30, up to index 9 for 90.
-
-
-
-
- Lookup table converting teens number to text. Index 0 for 10, index 1 for 11, up to index 9 for 19.
-
-
-
-
- Lookup table converting hundreds number to text. Index 0 for no hundreds, index 1 for 100, up to index 9.
-
-
-
-
- Enumerates sets of three-digits having distinct conversion to text.
-
-
-
-
- Lowest three-digits set, from 1 to 999.
-
-
-
-
- Three-digits set counting the thousands, from 1'000 to 999'000.
-
-
-
-
- Three-digits set counting millions, from 1'000'000 to 999'000'000.
-
-
-
-
- Three-digits set counting billions, from 1'000'000'000 to 999'000'000'000.
-
-
-
-
- Three-digits set beyond 999 billions, from 1'000'000'000'000 onward.
-
-
-
-
- Lookup table converting units number to text. Index 1 for 1, index 2 for 2, up to index 9.
-
-
-
-
- An interface you should implement to localise ToWords and ToOrdinalWords methods
-
-
-
-
- Converts the number to string using the locale's default grammatical gender
-
-
-
-
-
-
- Converts the number to string using the provided grammatical gender
-
-
-
-
-
-
-
- Converts the number to ordinal string using the locale's default grammatical gender
-
-
-
-
-
-
- Converts the number to ordinal string using the provided grammatical gender
-
-
-
-
-
-
-
- The interface used to localise the Ordinalize method
-
-
-
-
- Ordinalizes the number
-
-
-
-
-
-
-
- Ordinalizes the number using the provided grammatical gender
-
-
-
-
-
-
-
-
- Enumerates the possible time references; past or future.
-
-
-
-
- Indicates the future.
-
-
-
-
- Indicates the past.
-
-
-
-
-
-
-
-
-
- Encapsulates the logic required to get the resource keys for DateTime.Humanize
-
-
-
-
- Resource key for Now.
-
-
-
-
- Resource key for Never.
-
-
-
-
- Examples: DateHumanize_SingleMinuteAgo, DateHumanize_MultipleHoursAgo
- Note: "s" for plural served separately by third part.
-
-
-
-
- Generates Resource Keys accordning to convention.
-
- Time unit
- Is time unit in future or past
- Number of units, default is One.
- Resource key, like DateHumanize_SingleMinuteAgo
-
-
-
- Encapsulates the logic required to get the resource keys for TimeSpan.Humanize
-
-
-
-
- Examples: TimeSpanHumanize_SingleMinute, TimeSpanHumanize_MultipleHours.
- Note: "s" for plural served separately by third part.
-
-
-
-
- Generates Resource Keys according to convention.
-
- Time unit, .
- Number of units, default is One.
- Resource key, like TimeSpanHumanize_SingleMinute
-
-
-
- Units of time.
-
-
-
-
- Provides access to the resources of Humanizer
-
-
-
-
- Returns the value of the specified string resource
-
- The name of the resource to retrieve.
- The culture of the resource to retrieve. If not specified, current thread's UI culture is used.
- The value of the resource localized for the specified culture.
-
-
-
- Options for specifying the desired grammatical case for the output words
-
-
-
-
- Indicates the subject of a finite verb
-
-
-
-
- Indicates the possessor of another noun
-
-
-
-
- Indicates the indirect object of a verb
-
-
-
-
- Indicates the direct object of a verb
-
-
-
-
- Indicates an object used in performing an action
-
-
-
-
- Indicates the object of a preposition
-
-
-
-
- Options for specifying the desired grammatical gender for the output words
-
-
-
-
- Indicates masculine grammatical gender
-
-
-
-
- Indicates feminine grammatical gender
-
-
-
-
- Indicates neuter grammatical gender
-
-
-
-
- Provides extension methods for ByteSize
-
-
-
-
- Considers input as bits
-
-
-
-
-
-
- Considers input as bits
-
-
-
-
-
-
- Considers input as bits
-
-
-
-
-
-
- Considers input as bits
-
-
-
-
-
-
- Considers input as bits
-
-
-
-
-
-
- Considers input as bits
-
-
-
-
-
-
- Considers input as bits
-
-
-
-
-
-
- Considers input as bytes
-
-
-
-
-
-
- Considers input as bytes
-
-
-
-
-
-
- Considers input as bytes
-
-
-
-
-
-
- Considers input as bytes
-
-
-
-
-
-
- Considers input as bytes
-
-
-
-
-
-
- Considers input as bytes
-
-
-
-
-
-
- Considers input as bytes
-
-
-
-
-
-
- Considers input as bytes
-
-
-
-
-
-
- Considers input as kilobytes
-
-
-
-
-
-
- Considers input as kilobytes
-
-
-
-
-
-
- Considers input as kilobytes
-
-
-
-
-
-
- Considers input as kilobytes
-
-
-
-
-
-
- Considers input as kilobytes
-
-
-
-
-
-
- Considers input as kilobytes
-
-
-
-
-
-
- Considers input as kilobytes
-
-
-
-
-
-
- Considers input as kilobytes
-
-
-
-
-
-
- Considers input as megabytes
-
-
-
-
-
-
- Considers input as megabytes
-
-
-
-
-
-
- Considers input as megabytes
-
-
-
-
-
-
- Considers input as megabytes
-
-
-
-
-
-
- Considers input as megabytes
-
-
-
-
-
-
- Considers input as megabytes
-
-
-
-
-
-
- Considers input as megabytes
-
-
-
-
-
-
- Considers input as megabytes
-
-
-
-
-
-
- Considers input as gigabytes
-
-
-
-
-
-
- Considers input as gigabytes
-
-
-
-
-
-
- Considers input as gigabytes
-
-
-
-
-
-
- Considers input as gigabytes
-
-
-
-
-
-
- Considers input as gigabytes
-
-
-
-
-
-
- Considers input as gigabytes
-
-
-
-
-
-
- Considers input as gigabytes
-
-
-
-
-
-
- Considers input as gigabytes
-
-
-
-
-
-
- Considers input as terabytes
-
-
-
-
-
-
- Considers input as terabytes
-
-
-
-
-
-
- Considers input as terabytes
-
-
-
-
-
-
- Considers input as terabytes
-
-
-
-
-
-
- Considers input as terabytes
-
-
-
-
-
-
- Considers input as terabytes
-
-
-
-
-
-
- Considers input as terabytes
-
-
-
-
-
-
- Considers input as terabytes
-
-
-
-
-
-
- Turns a byte quantity into human readable form, eg 2 GB
-
-
- The string format to use
-
-
-
-
- Turns a quantity of bytes in a given interval into a rate that can be manipulated
-
- Quantity of bytes
- Interval to create rate for
-
-
-
-
- ApplyCase method to allow changing the case of a sentence easily
-
-
-
-
- Changes the casing of the provided input
-
-
-
-
-
-
-
- Humanizes DateTime into human readable sentence
-
-
-
-
- Turns the current or provided date into a human readable sentence
-
- The date to be humanized
- Boolean value indicating whether the date is in UTC or local
- Date to compare the input against. If null, current date is used as base
- Culture to use. If null, current thread's UI culture is used.
- distance of time in words
-
-
-
- Turns the current or provided date into a human readable sentence, overload for the nullable DateTime, returning 'never' in case null
-
- The date to be humanized
- Boolean value indicating whether the date is in UTC or local
- Date to compare the input against. If null, current date is used as base
- Culture to use. If null, current thread's UI culture is used.
- distance of time in words
-
-
-
- Turns the current or provided date into a human readable sentence
-
- The date to be humanized
- Date to compare the input against. If null, current date is used as base
- Culture to use. If null, current thread's UI culture is used.
- distance of time in words
-
-
-
- Turns the current or provided date into a human readable sentence, overload for the nullable DateTimeOffset, returning 'never' in case null
-
- The date to be humanized
- Date to compare the input against. If null, current date is used as base
- Culture to use. If null, current thread's UI culture is used.
- distance of time in words
-
-
-
- Contains extension methods for changing a number to Metric representation (ToMetric)
- and from Metric representation back to the number (FromMetric)
-
-
-
-
- Symbols is a list of every symbols for the Metric system.
-
-
-
-
- Names link a Metric symbol (as key) to its name (as value).
-
-
- We dont support :
- {'h', "hecto"},
- {'da', "deca" }, // !string
- {'d', "deci" },
- {'c', "centi"},
-
-
-
-
- Converts a Metric representation into a number.
-
-
- We don't support input in the format {number}{name} nor {number} {name}.
- We only provide a solution for {number}{symbol} and {number} {symbol}.
-
- Metric representation to convert to a number
-
-
- "1k".FromMetric() => 1000d
- "123".FromMetric() => 123d
- "100m".FromMetric() => 1E-1
-
-
- A number after a conversion from a Metric representation.
-
-
-
- Converts a number into a valid and Human-readable Metric representation.
-
-
- Inspired by a snippet from Thom Smith.
- See this link for more.
-
- Number to convert to a Metric representation.
- True will split the number and the symbol with a whitespace.
- True will use symbol instead of name
-
-
- 1000.ToMetric() => "1k"
- 123.ToMetric() => "123"
- 1E-1.ToMetric() => "100m"
-
-
- A valid Metric representation
-
-
-
- Converts a number into a valid and Human-readable Metric representation.
-
-
- Inspired by a snippet from Thom Smith.
- See this link for more.
-
- Number to convert to a Metric representation.
- True will split the number and the symbol with a whitespace.
- True will use symbol instead of name
-
-
- 1000d.ToMetric() => "1k"
- 123d.ToMetric() => "123"
- 1E-1.ToMetric() => "100m"
-
-
- A valid Metric representation
-
-
-
- Clean or handle any wrong input
-
- Metric representation to clean
- A cleaned representation
-
-
-
- Build a number from a metric representation or from a number
-
- A Metric representation to parse to a number
- The last character of input
- A number build from a Metric representation
-
-
-
- Build a number from a metric representation
-
- A Metric representation to parse to a number
- The last character of input
- A number build from a Metric representation
-
-
-
- Replace every symbol's name by its symbol representation.
-
- Metric representation with a name or a symbol
- A metric representation with a symbol
-
-
-
- Build a Metric representation of the number.
-
- Number to convert to a Metric representation.
- True will split the number and the symbol with a whitespace.
- True will use symbol instead of name
- A number in a Metric representation
-
-
-
- Build a Metric representation of the number.
-
- Number to convert to a Metric representation.
- Exponent of the number in a scientific notation
- True will split the number and the symbol with a whitespace.
- True will use symbol instead of name
- A number in a Metric representation
-
-
-
- Get the unit from a symbol of from the symbol's name.
-
- The symbol linked to the unit
- True will use symbol instead of name
- A symbol or a symbol's name
-
-
-
- Check if a Metric representation is out of the valid range.
-
- A Metric representation who might be out of the valid range.
- True if input is out of the valid range.
-
-
-
- Check if a string is not a valid Metric representation.
- A valid representation is in the format "{0}{1}" or "{0} {1}"
- where {0} is a number and {1} is an allowed symbol.
-
-
- ToDo: Performance: Use (string input, out number) to escape the double use of Parse()
-
- A string who might contain a invalid Metric representation.
- True if input is not a valid Metric representation.
-
-
-
- Number to Number extensions
-
-
-
-
- 5.Tens == 50
-
-
-
-
- 5.Tens == 50
-
-
-
-
- 5.Tens == 50
-
-
-
-
- 5.Tens == 50
-
-
-
-
- 5.Tens == 50
-
-
-
-
- 4.Hundreds() == 400
-
-
-
-
- 4.Hundreds() == 400
-
-
-
-
- 4.Hundreds() == 400
-
-
-
-
- 4.Hundreds() == 400
-
-
-
-
- 4.Hundreds() == 400
-
-
-
-
- 3.Thousands() == 3000
-
-
-
-
- 3.Thousands() == 3000
-
-
-
-
- 3.Thousands() == 3000
-
-
-
-
- 3.Thousands() == 3000
-
-
-
-
- 3.Thousands() == 3000
-
-
-
-
- 2.Millions() == 2000000
-
-
-
-
- 2.Millions() == 2000000
-
-
-
-
- 2.Millions() == 2000000
-
-
-
-
- 2.Millions() == 2000000
-
-
-
-
- 2.Millions() == 2000000
-
-
-
-
- 1.Billions() == 1000000000 (short scale)
-
-
-
-
- 1.Billions() == 1000000000 (short scale)
-
-
-
-
- 1.Billions() == 1000000000 (short scale)
-
-
-
-
- 1.Billions() == 1000000000 (short scale)
-
-
-
-
- 1.Billions() == 1000000000 (short scale)
-
-
-
-
- Provides hint for Humanizer as to whether a word is singular, plural or with unknown plurality
-
-
-
-
- The word is singular
-
-
-
-
- The word is plural
-
-
-
-
- I am unsure of the plurality
-
-
-
-
- Humanizes TimeSpan into human readable form
-
-
-
-
- Turns a TimeSpan into a human readable form. E.g. 1 day.
-
-
- The maximum number of time units to return. Defaulted is 1 which means the largest unit is returned
- Culture to use. If null, current thread's UI culture is used.
- The maximum unit of time to output.
- The minimum unit of time to output.
- The separator to use when combining humanized time parts. If null, the default collection formatter for the current culture is used.
-
-
-
-
- Turns a TimeSpan into a human readable form. E.g. 1 day.
-
-
- The maximum number of time units to return.
- Controls whether empty time units should be counted towards maximum number of time units. Leading empty time units never count.
- Culture to use. If null, current thread's UI culture is used.
- The maximum unit of time to output.
- The minimum unit of time to output.
- The separator to use when combining humanized time parts. If null, the default collection formatter for the current culture is used.
-
-
-
-
-
-
-
-
-
-
-
-
- 1 seconds from now
-
-
-
-
- 1 seconds from the provided date
-
-
-
-
- 1 minutes from now
-
-
-
-
- 1 minutes from the provided date
-
-
-
-
- 1 hours from now
-
-
-
-
- 1 hours from the provided date
-
-
-
-
- 1 days from now
-
-
-
-
- 1 days from the provided date
-
-
-
-
- 1 weeks from now
-
-
-
-
- 1 weeks from the provided date
-
-
-
-
- 1 months from now
-
-
-
-
- 1 months from the provided date
-
-
-
-
- 1 years from now
-
-
-
-
- 1 years from the provided date
-
-
-
-
-
-
-
-
- 2 seconds from now
-
-
-
-
- 2 seconds from the provided date
-
-
-
-
- 2 minutes from now
-
-
-
-
- 2 minutes from the provided date
-
-
-
-
- 2 hours from now
-
-
-
-
- 2 hours from the provided date
-
-
-
-
- 2 days from now
-
-
-
-
- 2 days from the provided date
-
-
-
-
- 2 weeks from now
-
-
-
-
- 2 weeks from the provided date
-
-
-
-
- 2 months from now
-
-
-
-
- 2 months from the provided date
-
-
-
-
- 2 years from now
-
-
-
-
- 2 years from the provided date
-
-
-
-
-
-
-
-
- 3 seconds from now
-
-
-
-
- 3 seconds from the provided date
-
-
-
-
- 3 minutes from now
-
-
-
-
- 3 minutes from the provided date
-
-
-
-
- 3 hours from now
-
-
-
-
- 3 hours from the provided date
-
-
-
-
- 3 days from now
-
-
-
-
- 3 days from the provided date
-
-
-
-
- 3 weeks from now
-
-
-
-
- 3 weeks from the provided date
-
-
-
-
- 3 months from now
-
-
-
-
- 3 months from the provided date
-
-
-
-
- 3 years from now
-
-
-
-
- 3 years from the provided date
-
-
-
-
-
-
-
-
- 4 seconds from now
-
-
-
-
- 4 seconds from the provided date
-
-
-
-
- 4 minutes from now
-
-
-
-
- 4 minutes from the provided date
-
-
-
-
- 4 hours from now
-
-
-
-
- 4 hours from the provided date
-
-
-
-
- 4 days from now
-
-
-
-
- 4 days from the provided date
-
-
-
-
- 4 weeks from now
-
-
-
-
- 4 weeks from the provided date
-
-
-
-
- 4 months from now
-
-
-
-
- 4 months from the provided date
-
-
-
-
- 4 years from now
-
-
-
-
- 4 years from the provided date
-
-
-
-
-
-
-
-
- 5 seconds from now
-
-
-
-
- 5 seconds from the provided date
-
-
-
-
- 5 minutes from now
-
-
-
-
- 5 minutes from the provided date
-
-
-
-
- 5 hours from now
-
-
-
-
- 5 hours from the provided date
-
-
-
-
- 5 days from now
-
-
-
-
- 5 days from the provided date
-
-
-
-
- 5 weeks from now
-
-
-
-
- 5 weeks from the provided date
-
-
-
-
- 5 months from now
-
-
-
-
- 5 months from the provided date
-
-
-
-
- 5 years from now
-
-
-
-
- 5 years from the provided date
-
-
-
-
-
-
-
-
- 6 seconds from now
-
-
-
-
- 6 seconds from the provided date
-
-
-
-
- 6 minutes from now
-
-
-
-
- 6 minutes from the provided date
-
-
-
-
- 6 hours from now
-
-
-
-
- 6 hours from the provided date
-
-
-
-
- 6 days from now
-
-
-
-
- 6 days from the provided date
-
-
-
-
- 6 weeks from now
-
-
-
-
- 6 weeks from the provided date
-
-
-
-
- 6 months from now
-
-
-
-
- 6 months from the provided date
-
-
-
-
- 6 years from now
-
-
-
-
- 6 years from the provided date
-
-
-
-
-
-
-
-
- 7 seconds from now
-
-
-
-
- 7 seconds from the provided date
-
-
-
-
- 7 minutes from now
-
-
-
-
- 7 minutes from the provided date
-
-
-
-
- 7 hours from now
-
-
-
-
- 7 hours from the provided date
-
-
-
-
- 7 days from now
-
-
-
-
- 7 days from the provided date
-
-
-
-
- 7 weeks from now
-
-
-
-
- 7 weeks from the provided date
-
-
-
-
- 7 months from now
-
-
-
-
- 7 months from the provided date
-
-
-
-
- 7 years from now
-
-
-
-
- 7 years from the provided date
-
-
-
-
-
-
-
-
- 8 seconds from now
-
-
-
-
- 8 seconds from the provided date
-
-
-
-
- 8 minutes from now
-
-
-
-
- 8 minutes from the provided date
-
-
-
-
- 8 hours from now
-
-
-
-
- 8 hours from the provided date
-
-
-
-
- 8 days from now
-
-
-
-
- 8 days from the provided date
-
-
-
-
- 8 weeks from now
-
-
-
-
- 8 weeks from the provided date
-
-
-
-
- 8 months from now
-
-
-
-
- 8 months from the provided date
-
-
-
-
- 8 years from now
-
-
-
-
- 8 years from the provided date
-
-
-
-
-
-
-
-
- 9 seconds from now
-
-
-
-
- 9 seconds from the provided date
-
-
-
-
- 9 minutes from now
-
-
-
-
- 9 minutes from the provided date
-
-
-
-
- 9 hours from now
-
-
-
-
- 9 hours from the provided date
-
-
-
-
- 9 days from now
-
-
-
-
- 9 days from the provided date
-
-
-
-
- 9 weeks from now
-
-
-
-
- 9 weeks from the provided date
-
-
-
-
- 9 months from now
-
-
-
-
- 9 months from the provided date
-
-
-
-
- 9 years from now
-
-
-
-
- 9 years from the provided date
-
-
-
-
-
-
-
-
- 10 seconds from now
-
-
-
-
- 10 seconds from the provided date
-
-
-
-
- 10 minutes from now
-
-
-
-
- 10 minutes from the provided date
-
-
-
-
- 10 hours from now
-
-
-
-
- 10 hours from the provided date
-
-
-
-
- 10 days from now
-
-
-
-
- 10 days from the provided date
-
-
-
-
- 10 weeks from now
-
-
-
-
- 10 weeks from the provided date
-
-
-
-
- 10 months from now
-
-
-
-
- 10 months from the provided date
-
-
-
-
- 10 years from now
-
-
-
-
- 10 years from the provided date
-
-
-
-
- Returns the first of January of the provided year
-
-
-
-
-
-
- Returns 1st of January of the current year
-
-
-
-
- Returns 1st of January of the year passed in
-
-
-
-
- Returns 1st of February of the current year
-
-
-
-
- Returns 1st of February of the year passed in
-
-
-
-
- Returns 1st of March of the current year
-
-
-
-
- Returns 1st of March of the year passed in
-
-
-
-
- Returns 1st of April of the current year
-
-
-
-
- Returns 1st of April of the year passed in
-
-
-
-
- Returns 1st of May of the current year
-
-
-
-
- Returns 1st of May of the year passed in
-
-
-
-
- Returns 1st of June of the current year
-
-
-
-
- Returns 1st of June of the year passed in
-
-
-
-
- Returns 1st of July of the current year
-
-
-
-
- Returns 1st of July of the year passed in
-
-
-
-
- Returns 1st of August of the current year
-
-
-
-
- Returns 1st of August of the year passed in
-
-
-
-
- Returns 1st of September of the current year
-
-
-
-
- Returns 1st of September of the year passed in
-
-
-
-
- Returns 1st of October of the current year
-
-
-
-
- Returns 1st of October of the year passed in
-
-
-
-
- Returns 1st of November of the current year
-
-
-
-
- Returns 1st of November of the year passed in
-
-
-
-
- Returns 1st of December of the current year
-
-
-
-
- Returns 1st of December of the year passed in
-
-
-
-
-
-
-
-
- Provides fluent date accessors for January
-
-
-
-
- The nth day of January of the current year
-
-
-
-
- The 1st day of January of the current year
-
-
-
-
- The 2nd day of January of the current year
-
-
-
-
- The 3rd day of January of the current year
-
-
-
-
- The 4th day of January of the current year
-
-
-
-
- The 5th day of January of the current year
-
-
-
-
- The 6th day of January of the current year
-
-
-
-
- The 7th day of January of the current year
-
-
-
-
- The 8th day of January of the current year
-
-
-
-
- The 9th day of January of the current year
-
-
-
-
- The 10th day of January of the current year
-
-
-
-
- The 11th day of January of the current year
-
-
-
-
- The 12th day of January of the current year
-
-
-
-
- The 13th day of January of the current year
-
-
-
-
- The 14th day of January of the current year
-
-
-
-
- The 15th day of January of the current year
-
-
-
-
- The 16th day of January of the current year
-
-
-
-
- The 17th day of January of the current year
-
-
-
-
- The 18th day of January of the current year
-
-
-
-
- The 19th day of January of the current year
-
-
-
-
- The 20th day of January of the current year
-
-
-
-
- The 21st day of January of the current year
-
-
-
-
- The 22nd day of January of the current year
-
-
-
-
- The 23rd day of January of the current year
-
-
-
-
- The 24th day of January of the current year
-
-
-
-
- The 25th day of January of the current year
-
-
-
-
- The 26th day of January of the current year
-
-
-
-
- The 27th day of January of the current year
-
-
-
-
- The 28th day of January of the current year
-
-
-
-
- The 29th day of January of the current year
-
-
-
-
- The 30th day of January of the current year
-
-
-
-
- The 31st day of January of the current year
-
-
-
-
- Provides fluent date accessors for February
-
-
-
-
- The nth day of February of the current year
-
-
-
-
- The 1st day of February of the current year
-
-
-
-
- The 2nd day of February of the current year
-
-
-
-
- The 3rd day of February of the current year
-
-
-
-
- The 4th day of February of the current year
-
-
-
-
- The 5th day of February of the current year
-
-
-
-
- The 6th day of February of the current year
-
-
-
-
- The 7th day of February of the current year
-
-
-
-
- The 8th day of February of the current year
-
-
-
-
- The 9th day of February of the current year
-
-
-
-
- The 10th day of February of the current year
-
-
-
-
- The 11th day of February of the current year
-
-
-
-
- The 12th day of February of the current year
-
-
-
-
- The 13th day of February of the current year
-
-
-
-
- The 14th day of February of the current year
-
-
-
-
- The 15th day of February of the current year
-
-
-
-
- The 16th day of February of the current year
-
-
-
-
- The 17th day of February of the current year
-
-
-
-
- The 18th day of February of the current year
-
-
-
-
- The 19th day of February of the current year
-
-
-
-
- The 20th day of February of the current year
-
-
-
-
- The 21st day of February of the current year
-
-
-
-
- The 22nd day of February of the current year
-
-
-
-
- The 23rd day of February of the current year
-
-
-
-
- The 24th day of February of the current year
-
-
-
-
- The 25th day of February of the current year
-
-
-
-
- The 26th day of February of the current year
-
-
-
-
- The 27th day of February of the current year
-
-
-
-
- The 28th day of February of the current year
-
-
-
-
- The 29th day of February of the current year
-
-
-
-
- Provides fluent date accessors for March
-
-
-
-
- The nth day of March of the current year
-
-
-
-
- The 1st day of March of the current year
-
-
-
-
- The 2nd day of March of the current year
-
-
-
-
- The 3rd day of March of the current year
-
-
-
-
- The 4th day of March of the current year
-
-
-
-
- The 5th day of March of the current year
-
-
-
-
- The 6th day of March of the current year
-
-
-
-
- The 7th day of March of the current year
-
-
-
-
- The 8th day of March of the current year
-
-
-
-
- The 9th day of March of the current year
-
-
-
-
- The 10th day of March of the current year
-
-
-
-
- The 11th day of March of the current year
-
-
-
-
- The 12th day of March of the current year
-
-
-
-
- The 13th day of March of the current year
-
-
-
-
- The 14th day of March of the current year
-
-
-
-
- The 15th day of March of the current year
-
-
-
-
- The 16th day of March of the current year
-
-
-
-
- The 17th day of March of the current year
-
-
-
-
- The 18th day of March of the current year
-
-
-
-
- The 19th day of March of the current year
-
-
-
-
- The 20th day of March of the current year
-
-
-
-
- The 21st day of March of the current year
-
-
-
-
- The 22nd day of March of the current year
-
-
-
-
- The 23rd day of March of the current year
-
-
-
-
- The 24th day of March of the current year
-
-
-
-
- The 25th day of March of the current year
-
-
-
-
- The 26th day of March of the current year
-
-
-
-
- The 27th day of March of the current year
-
-
-
-
- The 28th day of March of the current year
-
-
-
-
- The 29th day of March of the current year
-
-
-
-
- The 30th day of March of the current year
-
-
-
-
- The 31st day of March of the current year
-
-
-
-
- Provides fluent date accessors for April
-
-
-
-
- The nth day of April of the current year
-
-
-
-
- The 1st day of April of the current year
-
-
-
-
- The 2nd day of April of the current year
-
-
-
-
- The 3rd day of April of the current year
-
-
-
-
- The 4th day of April of the current year
-
-
-
-
- The 5th day of April of the current year
-
-
-
-
- The 6th day of April of the current year
-
-
-
-
- The 7th day of April of the current year
-
-
-
-
- The 8th day of April of the current year
-
-
-
-
- The 9th day of April of the current year
-
-
-
-
- The 10th day of April of the current year
-
-
-
-
- The 11th day of April of the current year
-
-
-
-
- The 12th day of April of the current year
-
-
-
-
- The 13th day of April of the current year
-
-
-
-
- The 14th day of April of the current year
-
-
-
-
- The 15th day of April of the current year
-
-
-
-
- The 16th day of April of the current year
-
-
-
-
- The 17th day of April of the current year
-
-
-
-
- The 18th day of April of the current year
-
-
-
-
- The 19th day of April of the current year
-
-
-
-
- The 20th day of April of the current year
-
-
-
-
- The 21st day of April of the current year
-
-
-
-
- The 22nd day of April of the current year
-
-
-
-
- The 23rd day of April of the current year
-
-
-
-
- The 24th day of April of the current year
-
-
-
-
- The 25th day of April of the current year
-
-
-
-
- The 26th day of April of the current year
-
-
-
-
- The 27th day of April of the current year
-
-
-
-
- The 28th day of April of the current year
-
-
-
-
- The 29th day of April of the current year
-
-
-
-
- The 30th day of April of the current year
-
-
-
-
- Provides fluent date accessors for May
-
-
-
-
- The nth day of May of the current year
-
-
-
-
- The 1st day of May of the current year
-
-
-
-
- The 2nd day of May of the current year
-
-
-
-
- The 3rd day of May of the current year
-
-
-
-
- The 4th day of May of the current year
-
-
-
-
- The 5th day of May of the current year
-
-
-
-
- The 6th day of May of the current year
-
-
-
-
- The 7th day of May of the current year
-
-
-
-
- The 8th day of May of the current year
-
-
-
-
- The 9th day of May of the current year
-
-
-
-
- The 10th day of May of the current year
-
-
-
-
- The 11th day of May of the current year
-
-
-
-
- The 12th day of May of the current year
-
-
-
-
- The 13th day of May of the current year
-
-
-
-
- The 14th day of May of the current year
-
-
-
-
- The 15th day of May of the current year
-
-
-
-
- The 16th day of May of the current year
-
-
-
-
- The 17th day of May of the current year
-
-
-
-
- The 18th day of May of the current year
-
-
-
-
- The 19th day of May of the current year
-
-
-
-
- The 20th day of May of the current year
-
-
-
-
- The 21st day of May of the current year
-
-
-
-
- The 22nd day of May of the current year
-
-
-
-
- The 23rd day of May of the current year
-
-
-
-
- The 24th day of May of the current year
-
-
-
-
- The 25th day of May of the current year
-
-
-
-
- The 26th day of May of the current year
-
-
-
-
- The 27th day of May of the current year
-
-
-
-
- The 28th day of May of the current year
-
-
-
-
- The 29th day of May of the current year
-
-
-
-
- The 30th day of May of the current year
-
-
-
-
- The 31st day of May of the current year
-
-
-
-
- Provides fluent date accessors for June
-
-
-
-
- The nth day of June of the current year
-
-
-
-
- The 1st day of June of the current year
-
-
-
-
- The 2nd day of June of the current year
-
-
-
-
- The 3rd day of June of the current year
-
-
-
-
- The 4th day of June of the current year
-
-
-
-
- The 5th day of June of the current year
-
-
-
-
- The 6th day of June of the current year
-
-
-
-
- The 7th day of June of the current year
-
-
-
-
- The 8th day of June of the current year
-
-
-
-
- The 9th day of June of the current year
-
-
-
-
- The 10th day of June of the current year
-
-
-
-
- The 11th day of June of the current year
-
-
-
-
- The 12th day of June of the current year
-
-
-
-
- The 13th day of June of the current year
-
-
-
-
- The 14th day of June of the current year
-
-
-
-
- The 15th day of June of the current year
-
-
-
-
- The 16th day of June of the current year
-
-
-
-
- The 17th day of June of the current year
-
-
-
-
- The 18th day of June of the current year
-
-
-
-
- The 19th day of June of the current year
-
-
-
-
- The 20th day of June of the current year
-
-
-
-
- The 21st day of June of the current year
-
-
-
-
- The 22nd day of June of the current year
-
-
-
-
- The 23rd day of June of the current year
-
-
-
-
- The 24th day of June of the current year
-
-
-
-
- The 25th day of June of the current year
-
-
-
-
- The 26th day of June of the current year
-
-
-
-
- The 27th day of June of the current year
-
-
-
-
- The 28th day of June of the current year
-
-
-
-
- The 29th day of June of the current year
-
-
-
-
- The 30th day of June of the current year
-
-
-
-
- Provides fluent date accessors for July
-
-
-
-
- The nth day of July of the current year
-
-
-
-
- The 1st day of July of the current year
-
-
-
-
- The 2nd day of July of the current year
-
-
-
-
- The 3rd day of July of the current year
-
-
-
-
- The 4th day of July of the current year
-
-
-
-
- The 5th day of July of the current year
-
-
-
-
- The 6th day of July of the current year
-
-
-
-
- The 7th day of July of the current year
-
-
-
-
- The 8th day of July of the current year
-
-
-
-
- The 9th day of July of the current year
-
-
-
-
- The 10th day of July of the current year
-
-
-
-
- The 11th day of July of the current year
-
-
-
-
- The 12th day of July of the current year
-
-
-
-
- The 13th day of July of the current year
-
-
-
-
- The 14th day of July of the current year
-
-
-
-
- The 15th day of July of the current year
-
-
-
-
- The 16th day of July of the current year
-
-
-
-
- The 17th day of July of the current year
-
-
-
-
- The 18th day of July of the current year
-
-
-
-
- The 19th day of July of the current year
-
-
-
-
- The 20th day of July of the current year
-
-
-
-
- The 21st day of July of the current year
-
-
-
-
- The 22nd day of July of the current year
-
-
-
-
- The 23rd day of July of the current year
-
-
-
-
- The 24th day of July of the current year
-
-
-
-
- The 25th day of July of the current year
-
-
-
-
- The 26th day of July of the current year
-
-
-
-
- The 27th day of July of the current year
-
-
-
-
- The 28th day of July of the current year
-
-
-
-
- The 29th day of July of the current year
-
-
-
-
- The 30th day of July of the current year
-
-
-
-
- The 31st day of July of the current year
-
-
-
-
- Provides fluent date accessors for August
-
-
-
-
- The nth day of August of the current year
-
-
-
-
- The 1st day of August of the current year
-
-
-
-
- The 2nd day of August of the current year
-
-
-
-
- The 3rd day of August of the current year
-
-
-
-
- The 4th day of August of the current year
-
-
-
-
- The 5th day of August of the current year
-
-
-
-
- The 6th day of August of the current year
-
-
-
-
- The 7th day of August of the current year
-
-
-
-
- The 8th day of August of the current year
-
-
-
-
- The 9th day of August of the current year
-
-
-
-
- The 10th day of August of the current year
-
-
-
-
- The 11th day of August of the current year
-
-
-
-
- The 12th day of August of the current year
-
-
-
-
- The 13th day of August of the current year
-
-
-
-
- The 14th day of August of the current year
-
-
-
-
- The 15th day of August of the current year
-
-
-
-
- The 16th day of August of the current year
-
-
-
-
- The 17th day of August of the current year
-
-
-
-
- The 18th day of August of the current year
-
-
-
-
- The 19th day of August of the current year
-
-
-
-
- The 20th day of August of the current year
-
-
-
-
- The 21st day of August of the current year
-
-
-
-
- The 22nd day of August of the current year
-
-
-
-
- The 23rd day of August of the current year
-
-
-
-
- The 24th day of August of the current year
-
-
-
-
- The 25th day of August of the current year
-
-
-
-
- The 26th day of August of the current year
-
-
-
-
- The 27th day of August of the current year
-
-
-
-
- The 28th day of August of the current year
-
-
-
-
- The 29th day of August of the current year
-
-
-
-
- The 30th day of August of the current year
-
-
-
-
- The 31st day of August of the current year
-
-
-
-
- Provides fluent date accessors for September
-
-
-
-
- The nth day of September of the current year
-
-
-
-
- The 1st day of September of the current year
-
-
-
-
- The 2nd day of September of the current year
-
-
-
-
- The 3rd day of September of the current year
-
-
-
-
- The 4th day of September of the current year
-
-
-
-
- The 5th day of September of the current year
-
-
-
-
- The 6th day of September of the current year
-
-
-
-
- The 7th day of September of the current year
-
-
-
-
- The 8th day of September of the current year
-
-
-
-
- The 9th day of September of the current year
-
-
-
-
- The 10th day of September of the current year
-
-
-
-
- The 11th day of September of the current year
-
-
-
-
- The 12th day of September of the current year
-
-
-
-
- The 13th day of September of the current year
-
-
-
-
- The 14th day of September of the current year
-
-
-
-
- The 15th day of September of the current year
-
-
-
-
- The 16th day of September of the current year
-
-
-
-
- The 17th day of September of the current year
-
-
-
-
- The 18th day of September of the current year
-
-
-
-
- The 19th day of September of the current year
-
-
-
-
- The 20th day of September of the current year
-
-
-
-
- The 21st day of September of the current year
-
-
-
-
- The 22nd day of September of the current year
-
-
-
-
- The 23rd day of September of the current year
-
-
-
-
- The 24th day of September of the current year
-
-
-
-
- The 25th day of September of the current year
-
-
-
-
- The 26th day of September of the current year
-
-
-
-
- The 27th day of September of the current year
-
-
-
-
- The 28th day of September of the current year
-
-
-
-
- The 29th day of September of the current year
-
-
-
-
- The 30th day of September of the current year
-
-
-
-
- Provides fluent date accessors for October
-
-
-
-
- The nth day of October of the current year
-
-
-
-
- The 1st day of October of the current year
-
-
-
-
- The 2nd day of October of the current year
-
-
-
-
- The 3rd day of October of the current year
-
-
-
-
- The 4th day of October of the current year
-
-
-
-
- The 5th day of October of the current year
-
-
-
-
- The 6th day of October of the current year
-
-
-
-
- The 7th day of October of the current year
-
-
-
-
- The 8th day of October of the current year
-
-
-
-
- The 9th day of October of the current year
-
-
-
-
- The 10th day of October of the current year
-
-
-
-
- The 11th day of October of the current year
-
-
-
-
- The 12th day of October of the current year
-
-
-
-
- The 13th day of October of the current year
-
-
-
-
- The 14th day of October of the current year
-
-
-
-
- The 15th day of October of the current year
-
-
-
-
- The 16th day of October of the current year
-
-
-
-
- The 17th day of October of the current year
-
-
-
-
- The 18th day of October of the current year
-
-
-
-
- The 19th day of October of the current year
-
-
-
-
- The 20th day of October of the current year
-
-
-
-
- The 21st day of October of the current year
-
-
-
-
- The 22nd day of October of the current year
-
-
-
-
- The 23rd day of October of the current year
-
-
-
-
- The 24th day of October of the current year
-
-
-
-
- The 25th day of October of the current year
-
-
-
-
- The 26th day of October of the current year
-
-
-
-
- The 27th day of October of the current year
-
-
-
-
- The 28th day of October of the current year
-
-
-
-
- The 29th day of October of the current year
-
-
-
-
- The 30th day of October of the current year
-
-
-
-
- The 31st day of October of the current year
-
-
-
-
- Provides fluent date accessors for November
-
-
-
-
- The nth day of November of the current year
-
-
-
-
- The 1st day of November of the current year
-
-
-
-
- The 2nd day of November of the current year
-
-
-
-
- The 3rd day of November of the current year
-
-
-
-
- The 4th day of November of the current year
-
-
-
-
- The 5th day of November of the current year
-
-
-
-
- The 6th day of November of the current year
-
-
-
-
- The 7th day of November of the current year
-
-
-
-
- The 8th day of November of the current year
-
-
-
-
- The 9th day of November of the current year
-
-
-
-
- The 10th day of November of the current year
-
-
-
-
- The 11th day of November of the current year
-
-
-
-
- The 12th day of November of the current year
-
-
-
-
- The 13th day of November of the current year
-
-
-
-
- The 14th day of November of the current year
-
-
-
-
- The 15th day of November of the current year
-
-
-
-
- The 16th day of November of the current year
-
-
-
-
- The 17th day of November of the current year
-
-
-
-
- The 18th day of November of the current year
-
-
-
-
- The 19th day of November of the current year
-
-
-
-
- The 20th day of November of the current year
-
-
-
-
- The 21st day of November of the current year
-
-
-
-
- The 22nd day of November of the current year
-
-
-
-
- The 23rd day of November of the current year
-
-
-
-
- The 24th day of November of the current year
-
-
-
-
- The 25th day of November of the current year
-
-
-
-
- The 26th day of November of the current year
-
-
-
-
- The 27th day of November of the current year
-
-
-
-
- The 28th day of November of the current year
-
-
-
-
- The 29th day of November of the current year
-
-
-
-
- The 30th day of November of the current year
-
-
-
-
- Provides fluent date accessors for December
-
-
-
-
- The nth day of December of the current year
-
-
-
-
- The 1st day of December of the current year
-
-
-
-
- The 2nd day of December of the current year
-
-
-
-
- The 3rd day of December of the current year
-
-
-
-
- The 4th day of December of the current year
-
-
-
-
- The 5th day of December of the current year
-
-
-
-
- The 6th day of December of the current year
-
-
-
-
- The 7th day of December of the current year
-
-
-
-
- The 8th day of December of the current year
-
-
-
-
- The 9th day of December of the current year
-
-
-
-
- The 10th day of December of the current year
-
-
-
-
- The 11th day of December of the current year
-
-
-
-
- The 12th day of December of the current year
-
-
-
-
- The 13th day of December of the current year
-
-
-
-
- The 14th day of December of the current year
-
-
-
-
- The 15th day of December of the current year
-
-
-
-
- The 16th day of December of the current year
-
-
-
-
- The 17th day of December of the current year
-
-
-
-
- The 18th day of December of the current year
-
-
-
-
- The 19th day of December of the current year
-
-
-
-
- The 20th day of December of the current year
-
-
-
-
- The 21st day of December of the current year
-
-
-
-
- The 22nd day of December of the current year
-
-
-
-
- The 23rd day of December of the current year
-
-
-
-
- The 24th day of December of the current year
-
-
-
-
- The 25th day of December of the current year
-
-
-
-
- The 26th day of December of the current year
-
-
-
-
- The 27th day of December of the current year
-
-
-
-
- The 28th day of December of the current year
-
-
-
-
- The 29th day of December of the current year
-
-
-
-
- The 30th day of December of the current year
-
-
-
-
- The 31st day of December of the current year
-
-
-
-
- Dictating what should be done when a match is not found - currently used only for DehumanizeTo
-
-
-
-
- This is the default behavior which throws a NoMatchFoundException
-
-
-
-
- If set to ReturnsNull the method returns null instead of throwing an exception
-
-
-
-
- This is thrown on String.DehumanizeTo enum when the provided string cannot be mapped to the target enum
-
-
-
-
- Contains extension methods for changing a number to Roman representation (ToRoman) and from Roman representation back to the number (FromRoman)
-
-
-
-
- Converts Roman numbers into integer
-
- Roman number
- Human-readable number
-
-
-
- Converts the input to Roman number
-
- Integer input
- Roman number
-
-
-
- Extension methods for String type.
-
-
-
-
- Extension method to format string with passed arguments. Current thread's current culture is used
-
- string format
- arguments
-
-
-
-
- Extension method to format string with passed arguments using specified format provider (i.e. CultureInfo)
-
- string format
- An object that supplies culture-specific formatting information
- arguments
-
-
-
-
- Enumerates the ways of displaying a quantity value when converting
- a word to a quantity string.
-
-
-
-
- Indicates that no quantity will be included in the formatted string.
-
-
-
-
- Indicates that the quantity will be included in the output, formatted
- as its numeric value (e.g. "1").
-
-
-
-
- Incidates that the quantity will be included in the output, formatted as
- words (e.g. 123 => "one hundred and twenty three").
-
-
-
-
- Provides extensions for formatting a word as a quantity.
-
-
-
-
- Prefixes the provided word with the number and accordingly pluralizes or singularizes the word
-
- The word to be prefixed
- The quantity of the word
- How to show the quantity. Numeric by default
-
- "request".ToQuantity(0) => "0 requests"
- "request".ToQuantity(1) => "1 request"
- "request".ToQuantity(2) => "2 requests"
- "men".ToQuantity(2) => "2 men"
- "process".ToQuantity(1200, ShowQuantityAs.Words) => "one thousand two hundred processes"
-
-
-
-
-
- Prefixes the provided word with the number and accordingly pluralizes or singularizes the word
-
- The word to be prefixed
- The quantity of the word
- A standard or custom numeric format string.
- An object that supplies culture-specific formatting information.
-
- "request".ToQuantity(0) => "0 requests"
- "request".ToQuantity(10000, format: "N0") => "10,000 requests"
- "request".ToQuantity(1, format: "N0") => "1 request"
-
-
-
-
-
- A portal to string transformation using IStringTransformer
-
-
-
-
- Transforms a string using the provided transformers. Transformations are applied in the provided order.
-
-
-
-
-
-
-
- Changes string to title case
-
-
- "INvalid caSEs arE corrected" -> "Invalid Cases Are Corrected"
-
-
-
-
- Changes the string to lower case
-
-
- "Sentence casing" -> "sentence casing"
-
-
-
-
- Changes the string to upper case
-
-
- "lower case statement" -> "LOWER CASE STATEMENT"
-
-
-
-
- Changes the string to sentence case
-
-
- "lower case statement" -> "Lower case statement"
-
-
-
-
- Can tranform a string
-
-
-
-
- Transform the input
-
- String to be transformed
-
-
-
-
- Contains extension methods for dehumanizing Enum string values.
-
-
-
-
- Dehumanizes a string into the Enum it was originally Humanized from!
-
- The target enum
- The string to be converted
- If TTargetEnum is not an enum
- Couldn't find any enum member that matches the string
-
-
-
-
- Dehumanizes a string into the Enum it was originally Humanized from!
-
- The string to be converted
- The target enum
- What to do when input is not matched to the enum.
-
- Couldn't find any enum member that matches the string
- If targetEnum is not an enum
-
-
-
- Contains extension methods for humanizing Enums
-
-
-
-
- Turns an enum member into a human readable string; e.g. AnonymousUser -> Anonymous user. It also honors DescriptionAttribute data annotation
-
- The enum member to be humanized
-
-
-
-
- Checks whether the given enum is to be used as a bit field type.
-
-
- True if the given enum is a bit field enum, false otherwise.
-
-
-
- Turns an enum member into a human readable string with the provided casing; e.g. AnonymousUser with Title casing -> Anonymous User. It also honors DescriptionAttribute data annotation
-
- The enum member to be humanized
- The casing to use for humanizing the enum member
-
-
-
-
- extensions related to spatial or temporal relations
-
-
-
-
- Returns a new with the specifed hour and, optionally
- provided minutes, seconds, and milliseconds.
-
-
-
-
- Returns a new instance of DateTime based on the provided date where the time is set to midnight
-
-
-
-
-
-
- Returns a new instance of DateTime based on the provided date where the time is set to noon
-
-
-
-
-
-
- Returns a new instance of DateTime based on the provided date where the year is set to the provided year
-
-
-
-
-
-
-
- Number to TimeSpan extensions
-
-
-
-
- 5.Milliseconds() == TimeSpan.FromMilliseconds(5)
-
-
-
-
-
-
- 5.Milliseconds() == TimeSpan.FromMilliseconds(5)
-
-
-
-
-
-
- 5.Milliseconds() == TimeSpan.FromMilliseconds(5)
-
-
-
-
-
-
- 5.Milliseconds() == TimeSpan.FromMilliseconds(5)
-
-
-
-
-
-
- 5.Milliseconds() == TimeSpan.FromMilliseconds(5)
-
-
-
-
-
-
- 5.Milliseconds() == TimeSpan.FromMilliseconds(5)
-
-
-
-
-
-
- 5.Milliseconds() == TimeSpan.FromMilliseconds(5)
-
-
-
-
-
-
- 5.Milliseconds() == TimeSpan.FromMilliseconds(5)
-
-
-
-
-
-
- 5.Milliseconds() == TimeSpan.FromMilliseconds(5)
-
-
-
-
-
-
- 5.Seconds() == TimeSpan.FromSeconds(5)
-
-
-
-
-
-
- 5.Seconds() == TimeSpan.FromSeconds(5)
-
-
-
-
-
-
- 5.Seconds() == TimeSpan.FromSeconds(5)
-
-
-
-
-
-
- 5.Seconds() == TimeSpan.FromSeconds(5)
-
-
-
-
-
-
- 5.Seconds() == TimeSpan.FromSeconds(5)
-
-
-
-
-
-
- 5.Seconds() == TimeSpan.FromSeconds(5)
-
-
-
-
-
-
- 5.Seconds() == TimeSpan.FromSeconds(5)
-
-
-
-
-
-
- 5.Seconds() == TimeSpan.FromSeconds(5)
-
-
-
-
-
-
- 5.Seconds() == TimeSpan.FromSeconds(5)
-
-
-
-
-
-
- 4.Minutes() == TimeSpan.FromMinutes(4)
-
-
-
-
-
-
- 4.Minutes() == TimeSpan.FromMinutes(4)
-
-
-
-
-
-
- 4.Minutes() == TimeSpan.FromMinutes(4)
-
-
-
-
-
-
- 4.Minutes() == TimeSpan.FromMinutes(4)
-
-
-
-
-
-
- 4.Minutes() == TimeSpan.FromMinutes(4)
-
-
-
-
-
-
- 4.Minutes() == TimeSpan.FromMinutes(4)
-
-
-
-
-
-
- 4.Minutes() == TimeSpan.FromMinutes(4)
-
-
-
-
-
-
- 4.Minutes() == TimeSpan.FromMinutes(4)
-
-
-
-
-
-
- 4.Minutes() == TimeSpan.FromMinutes(4)
-
-
-
-
-
-
- 3.Hours() == TimeSpan.FromHours(3)
-
-
-
-
-
-
- 3.Hours() == TimeSpan.FromHours(3)
-
-
-
-
-
-
- 3.Hours() == TimeSpan.FromHours(3)
-
-
-
-
-
-
- 3.Hours() == TimeSpan.FromHours(3)
-
-
-
-
-
-
- 3.Hours() == TimeSpan.FromHours(3)
-
-
-
-
-
-
- 3.Hours() == TimeSpan.FromHours(3)
-
-
-
-
-
-
- 3.Hours() == TimeSpan.FromHours(3)
-
-
-
-
-
-
- 3.Hours() == TimeSpan.FromHours(3)
-
-
-
-
-
-
- 3.Hours() == TimeSpan.FromHours(3)
-
-
-
-
-
-
- 2.Days() == TimeSpan.FromDays(2)
-
-
-
-
-
-
- 2.Days() == TimeSpan.FromDays(2)
-
-
-
-
-
-
- 2.Days() == TimeSpan.FromDays(2)
-
-
-
-
-
-
- 2.Days() == TimeSpan.FromDays(2)
-
-
-
-
-
-
- 2.Days() == TimeSpan.FromDays(2)
-
-
-
-
-
-
- 2.Days() == TimeSpan.FromDays(2)
-
-
-
-
-
-
- 2.Days() == TimeSpan.FromDays(2)
-
-
-
-
-
-
- 2.Days() == TimeSpan.FromDays(2)
-
-
-
-
-
-
- 2.Days() == TimeSpan.FromDays(2)
-
-
-
-
-
-
- 2.Weeks() == new TimeSpan(14, 0, 0, 0)
-
-
-
-
-
-
- 2.Weeks() == new TimeSpan(14, 0, 0, 0)
-
-
-
-
-
-
- 2.Weeks() == new TimeSpan(14, 0, 0, 0)
-
-
-
-
-
-
- 2.Weeks() == new TimeSpan(14, 0, 0, 0)
-
-
-
-
-
-
- 2.Weeks() == new TimeSpan(14, 0, 0, 0)
-
-
-
-
-
-
- 2.Weeks() == new TimeSpan(14, 0, 0, 0)
-
-
-
-
-
-
- 2.Weeks() == new TimeSpan(14, 0, 0, 0)
-
-
-
-
-
-
- 2.Weeks() == new TimeSpan(14, 0, 0, 0)
-
-
-
-
-
-
- 2.Weeks() == new TimeSpan(14, 0, 0, 0)
-
-
-
-
-
-
- Inflector extensions
-
-
-
-
- Pluralizes the provided input considering irregular words
-
- Word to be pluralized
- Normally you call Pluralize on singular words; but if you're unsure call it with false
-
-
-
-
- Singularizes the provided input considering irregular words
-
- Word to be singularized
- Normally you call Singularize on plural words; but if you're unsure call it with false
-
-
-
-
- Humanizes the input with Title casing
-
- The string to be titleized
-
-
-
-
- By default, pascalize converts strings to UpperCamelCase also removing underscores
-
-
-
-
-
-
- Same as Pascalize except that the first character is lower case
-
-
-
-
-
-
- Separates the input words with underscore
-
- The string to be underscored
-
-
-
-
- Replaces underscores with dashes in the string
-
-
-
-
-
-
- Replaces underscores with hyphens in the string
-
-
-
-
-
-
- Options for specifying the desired letter casing for the output string
-
-
-
-
- SomeString -> Some String
-
-
-
-
- SomeString -> SOME STRING
-
-
-
-
- SomeString -> some string
-
-
-
-
- SomeString -> Some string
-
-
-
-
- Transform a number into words; e.g. 1 => one
-
-
-
-
- 3501.ToWords() -> "three thousand five hundred and one"
-
- Number to be turned to words
- Culture to use. If null, current thread's UI culture is used.
-
-
-
-
- For locales that support gender-specific forms
-
-
- Russian:
-
- 1.ToWords(GrammaticalGender.Masculine) -> "один"
- 1.ToWords(GrammaticalGender.Feminine) -> "одна"
-
- Hebrew:
-
- 1.ToWords(GrammaticalGender.Masculine) -> "אחד"
- 1.ToWords(GrammaticalGender.Feminine) -> "אחת"
-
-
-
- Number to be turned to words
- The grammatical gender to use for output words
- Culture to use. If null, current thread's UI culture is used.
-
-
-
-
- 1.ToOrdinalWords() -> "first"
-
- Number to be turned to ordinal words
- Culture to use. If null, current thread's UI culture is used.
-
-
-
-
- for Brazilian Portuguese locale
- 1.ToOrdinalWords(GrammaticalGender.Masculine) -> "primeiro"
- 1.ToOrdinalWords(GrammaticalGender.Feminine) -> "primeira"
-
- Number to be turned to words
- The grammatical gender to use for output words
- Culture to use. If null, current thread's UI culture is used.
-
-
-
-
- Ordinalize extensions
-
-
-
-
- Turns a number into an ordinal string used to denote the position in an ordered sequence such as 1st, 2nd, 3rd, 4th.
-
- The number, in string, to be ordinalized
-
-
-
-
- Turns a number into an ordinal string used to denote the position in an ordered sequence such as 1st, 2nd, 3rd, 4th.
- Gender for Brazilian Portuguese locale
- "1".Ordinalize(GrammaticalGender.Masculine) -> "1º"
- "1".Ordinalize(GrammaticalGender.Feminine) -> "1ª"
-
- The number, in string, to be ordinalized
- The grammatical gender to use for output words
-
-
-
-
- Turns a number into an ordinal number used to denote the position in an ordered sequence such as 1st, 2nd, 3rd, 4th.
-
- The number to be ordinalized
-
-
-
-
- Turns a number into an ordinal number used to denote the position in an ordered sequence such as 1st, 2nd, 3rd, 4th.
- Gender for Brazilian Portuguese locale
- 1.Ordinalize(GrammaticalGender.Masculine) -> "1º"
- 1.Ordinalize(GrammaticalGender.Feminine) -> "1ª"
-
- The number to be ordinalized
- The grammatical gender to use for output words
-
-
-
-
- Contains extension methods for dehumanizing strings.
-
-
-
-
- Dehumanizes a string; e.g. 'some string', 'Some String', 'Some string' -> 'SomeString'
-
- The string to be dehumanized
-
-
-
-
- Contains extension methods for humanizing string values.
-
-
-
-
- Humanizes the input string; e.g. Underscored_input_String_is_turned_INTO_sentence -> 'Underscored input String is turned INTO sentence'
-
- The string to be humanized
-
-
-
-
- Humanized the input string based on the provided casing
-
- The string to be humanized
- The desired casing for the output
-
-
-
-
- Truncate a string to a fixed length
-
-
-
-
- Truncate a string to a fixed number of letters or digits
-
-
-
-
- Truncate a string to a fixed number of words
-
-
-
-
- Can truncate a string.
-
-
-
-
- Truncate a string
-
- The string to truncate
- The length to truncate to
- The string used to truncate with
- The enum value used to determine from where to truncate the string
- The truncated string
-
-
-
- Allow strings to be truncated
-
-
-
-
- Truncate the string
-
- The string to be truncated
- The length to truncate to
- The truncated string
-
-
-
- Truncate the string
-
- The string to be truncated
- The length to truncate to
- The truncate to use
- The enum value used to determine from where to truncate the string
- The truncated string
-
-
-
- Truncate the string
-
- The string to be truncated
- The length to truncate to
- The string used to truncate with
- The enum value used to determine from where to truncate the string
- The truncated string
-
-
-
- Truncate the string
-
- The string to be truncated
- The length to truncate to
- The string used to truncate with
- The truncator to use
- The enum value used to determine from where to truncate the string
- The truncated string
-
-
-
- Truncation location for humanizer
-
-
-
-
- Truncate letters from the left (start) of the string
-
-
-
-
- Truncate letters from the right (end) of the string
-
-
-
-
- Gets a ITruncator
-
-
-
-
- Fixed length truncator
-
-
-
-
- Fixed number of characters truncator
-
-
-
-
- Fixed number of words truncator
-
-
-
-