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