Struct FloatingDuration
Represents a duration in time, or elapsed time, or a difference between two timestamps, with sub-tick precision.
public readonly struct FloatingDuration : IEquatable<FloatingDuration>, IComparable<FloatingDuration>, IComparable
- Implements
- Inherited Members
Constructors
FloatingDuration(Duration)
Creates a new FloatingDuration instance.
public FloatingDuration(Duration duration)
Parameters
FloatingDuration(decimal)
Creates a new FloatingDuration instance.
public FloatingDuration(decimal ticks)
Parameters
ticks
decimalNumber of ticks.
FloatingDuration(int, int, int, int, int, decimal)
Creates a new FloatingDuration instance.
public FloatingDuration(int hours, int minutes, int seconds = 0, int milliseconds = 0, int microseconds = 0, decimal ticks = 0)
Parameters
hours
intNumber of hours.
minutes
intNumber of minutes.
seconds
intNumber of seconds.
milliseconds
intNumber of milliseconds.
microseconds
intNumber of microseconds.
ticks
decimalNumber of ticks.
FloatingDuration(TimeSpan)
Creates a new FloatingDuration instance.
public FloatingDuration(TimeSpan timeSpan)
Parameters
Fields
MaxValue
Specifies minimum possible FloatingDuration.
public static readonly FloatingDuration MaxValue
Field Value
MinValue
Specifies maximum possible FloatingDuration.
public static readonly FloatingDuration MinValue
Field Value
Zero
Specifies the FloatingDuration of 0 length.
public static readonly FloatingDuration Zero
Field Value
Properties
FullHours
Total number of full hours.
public long FullHours { get; }
Property Value
FullMicroseconds
Total number of full microseconds.
public long FullMicroseconds { get; }
Property Value
FullMilliseconds
Total number of full milliseconds.
public long FullMilliseconds { get; }
Property Value
FullMinutes
Total number of full minutes.
public long FullMinutes { get; }
Property Value
FullSeconds
Total number of full seconds.
public long FullSeconds { get; }
Property Value
FullTicks
Total number of full ticks.
public long FullTicks { get; }
Property Value
MicrosecondsInMillisecond
Number of microseconds in the millisecond component.
public int MicrosecondsInMillisecond { get; }
Property Value
MillisecondsInSecond
Number of milliseconds in the second component.
public int MillisecondsInSecond { get; }
Property Value
MinutesInHour
Number of minutes in the hour component.
public int MinutesInHour { get; }
Property Value
SecondsInMinute
Number of seconds in the minute component.
public int SecondsInMinute { get; }
Property Value
Ticks
Total number of ticks. One tick is equivalent to 100 nanoseconds.
public decimal Ticks { get; }
Property Value
TicksInMicrosecond
Number of ticks in the microsecond component.
public decimal TicksInMicrosecond { get; }
Property Value
TotalHours
Total number of hours.
public decimal TotalHours { get; }
Property Value
TotalMicroseconds
Total number of microseconds.
public decimal TotalMicroseconds { get; }
Property Value
TotalMilliseconds
Total number of milliseconds.
public decimal TotalMilliseconds { get; }
Property Value
TotalMinutes
Total number of minutes.
public decimal TotalMinutes { get; }
Property Value
TotalSeconds
Total number of seconds.
public decimal TotalSeconds { get; }
Property Value
Methods
Abs()
Creates a new FloatingDuration instance by calculating an absolute value from this instance.
[Pure]
public FloatingDuration Abs()
Returns
- FloatingDuration
New FloatingDuration instance.
Add(FloatingDuration)
Creates a new FloatingDuration instance by adding other
to this instance.
[Pure]
public FloatingDuration Add(FloatingDuration other)
Parameters
other
FloatingDurationOther instance to add.
Returns
- FloatingDuration
New FloatingDuration instance.
AddHours(decimal)
Creates a new FloatingDuration instance by adding the specified number of hours
.
[Pure]
public FloatingDuration AddHours(decimal hours)
Parameters
hours
decimalHours to add.
Returns
- FloatingDuration
New FloatingDuration instance.
AddMicroseconds(decimal)
Creates a new FloatingDuration instance by adding the specified number of microseconds
.
[Pure]
public FloatingDuration AddMicroseconds(decimal microseconds)
Parameters
microseconds
decimalMicroseconds to add.
Returns
- FloatingDuration
New FloatingDuration instance.
AddMilliseconds(decimal)
Creates a new FloatingDuration instance by adding the specified number of milliseconds
.
[Pure]
public FloatingDuration AddMilliseconds(decimal milliseconds)
Parameters
milliseconds
decimalMilliseconds to add.
Returns
- FloatingDuration
New FloatingDuration instance.
AddMinutes(decimal)
Creates a new FloatingDuration instance by adding the specified number of minutes
.
[Pure]
public FloatingDuration AddMinutes(decimal minutes)
Parameters
minutes
decimalMinutes to add.
Returns
- FloatingDuration
New FloatingDuration instance.
AddSeconds(decimal)
Creates a new FloatingDuration instance by adding the specified number of seconds
.
[Pure]
public FloatingDuration AddSeconds(decimal seconds)
Parameters
seconds
decimalSeconds to add.
Returns
- FloatingDuration
New FloatingDuration instance.
AddTicks(decimal)
Creates a new FloatingDuration instance by adding the specified number of ticks
.
[Pure]
public FloatingDuration AddTicks(decimal ticks)
Parameters
ticks
decimalTicks to add.
Returns
- FloatingDuration
New FloatingDuration instance.
CompareTo(FloatingDuration)
Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object.
[Pure]
public int CompareTo(FloatingDuration other)
Parameters
other
FloatingDurationAn object to compare with this instance.
Returns
- int
A value that indicates the relative order of the objects being compared. The return value has these meanings:
Value Meaning Less than zero This instance precedes other
in the sort order.Zero This instance occurs in the same position in the sort order as other
.Greater than zero This instance follows other
in the sort order.
CompareTo(object?)
Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object.
[Pure]
public int CompareTo(object? obj)
Parameters
obj
objectAn object to compare with this instance.
Returns
- int
A value that indicates the relative order of the objects being compared. The return value has these meanings:
Value Meaning Less than zero This instance precedes obj
in the sort order.Zero This instance occurs in the same position in the sort order as obj
.Greater than zero This instance follows obj
in the sort order.
Exceptions
- ArgumentException
obj
is not the same type as this instance.
Divide(decimal)
Creates a new FloatingDuration instance by dividing this instance by the provided divisor
.
[Pure]
public FloatingDuration Divide(decimal divisor)
Parameters
divisor
decimalValue to divide by.
Returns
- FloatingDuration
New FloatingDuration instance.
Exceptions
- DivideByZeroException
When
divisor
is equal to 0.
Equals(FloatingDuration)
Indicates whether the current object is equal to another object of the same type.
[Pure]
public bool Equals(FloatingDuration other)
Parameters
other
FloatingDurationAn object to compare with this object.
Returns
Equals(object?)
Indicates whether this instance and a specified object are equal.
[Pure]
public override bool Equals(object? obj)
Parameters
obj
objectThe object to compare with the current instance.
Returns
- bool
true if
obj
and this instance are the same type and represent the same value; otherwise, false.
FromHours(decimal)
Creates a new FloatingDuration instance.
[Pure]
public static FloatingDuration FromHours(decimal hours)
Parameters
hours
decimalNumber of hours.
Returns
- FloatingDuration
New FloatingDuration instance.
FromMicroseconds(decimal)
Creates a new FloatingDuration instance.
[Pure]
public static FloatingDuration FromMicroseconds(decimal microseconds)
Parameters
microseconds
decimalNumber of microseconds.
Returns
- FloatingDuration
New FloatingDuration instance.
FromMilliseconds(decimal)
Creates a new FloatingDuration instance.
[Pure]
public static FloatingDuration FromMilliseconds(decimal milliseconds)
Parameters
milliseconds
decimalNumber of milliseconds.
Returns
- FloatingDuration
New FloatingDuration instance.
FromMinutes(decimal)
Creates a new FloatingDuration instance.
[Pure]
public static FloatingDuration FromMinutes(decimal minutes)
Parameters
minutes
decimalNumber of minutes.
Returns
- FloatingDuration
New FloatingDuration instance.
FromSeconds(decimal)
Creates a new FloatingDuration instance.
[Pure]
public static FloatingDuration FromSeconds(decimal seconds)
Parameters
seconds
decimalNumber of seconds.
Returns
- FloatingDuration
New FloatingDuration instance.
FromTicks(decimal)
Creates a new FloatingDuration instance.
[Pure]
public static FloatingDuration FromTicks(decimal ticks)
Parameters
ticks
decimalNumber of ticks.
Returns
- FloatingDuration
New FloatingDuration instance.
GetHashCode()
Returns the hash code for this instance.
[Pure]
public override int GetHashCode()
Returns
- int
A 32-bit signed integer that is the hash code for this instance.
Multiply(Percent)
Creates a new FloatingDuration instance by multiplying this instance by the provided percent
.
[Pure]
public FloatingDuration Multiply(Percent percent)
Parameters
percent
PercentPercent to multiply by.
Returns
- FloatingDuration
New FloatingDuration instance.
Multiply(decimal)
Creates a new FloatingDuration instance by multiplying this instance by the provided multiplier
.
[Pure]
public FloatingDuration Multiply(decimal multiplier)
Parameters
multiplier
decimalValue to multiply by.
Returns
- FloatingDuration
New FloatingDuration instance.
Negate()
Creates a new FloatingDuration instance by negating this instance.
[Pure]
public FloatingDuration Negate()
Returns
- FloatingDuration
New FloatingDuration instance.
SetHours(long)
Creates a new FloatingDuration instance by setting the number of hours.
[Pure]
public FloatingDuration SetHours(long value)
Parameters
value
longNew value.
Returns
- FloatingDuration
New FloatingDuration instance.
SetMicrosecondsInMillisecond(int)
Creates a new FloatingDuration instance by setting the number of microseconds in the millisecond component.
[Pure]
public FloatingDuration SetMicrosecondsInMillisecond(int value)
Parameters
value
intNew value.
Returns
- FloatingDuration
New FloatingDuration instance.
Exceptions
- ArgumentOutOfRangeException
When
value
is not in a valid range.
SetMillisecondsInSecond(int)
Creates a new FloatingDuration instance by setting the number of milliseconds in the second component.
[Pure]
public FloatingDuration SetMillisecondsInSecond(int value)
Parameters
value
intNew value.
Returns
- FloatingDuration
New FloatingDuration instance.
Exceptions
- ArgumentOutOfRangeException
When
value
is not in a valid range.
SetMinutesInHour(int)
Creates a new FloatingDuration instance by setting the number of minutes in the hour component.
[Pure]
public FloatingDuration SetMinutesInHour(int value)
Parameters
value
intNew value.
Returns
- FloatingDuration
New FloatingDuration instance.
Exceptions
- ArgumentOutOfRangeException
When
value
is not in a valid range.
SetSecondsInMinute(int)
Creates a new FloatingDuration instance by setting the number of seconds in the minute component.
[Pure]
public FloatingDuration SetSecondsInMinute(int value)
Parameters
value
intNew value.
Returns
- FloatingDuration
New FloatingDuration instance.
Exceptions
- ArgumentOutOfRangeException
When
value
is not in a valid range.
SetTicksInMicrosecond(decimal)
Creates a new FloatingDuration instance by setting the number of ticks in the microsecond component.
[Pure]
public FloatingDuration SetTicksInMicrosecond(decimal value)
Parameters
value
decimalNew value.
Returns
- FloatingDuration
New FloatingDuration instance.
Exceptions
- ArgumentOutOfRangeException
When
value
is not in a valid range.
Subtract(FloatingDuration)
Creates a new FloatingDuration instance by subtracting other
from this instance.
[Pure]
public FloatingDuration Subtract(FloatingDuration other)
Parameters
other
FloatingDurationOther instance to subtract.
Returns
- FloatingDuration
New FloatingDuration instance.
SubtractHours(decimal)
Creates a new FloatingDuration instance by subtracting the specified number of hours
.
[Pure]
public FloatingDuration SubtractHours(decimal hours)
Parameters
hours
decimalHours to subtract.
Returns
- FloatingDuration
New FloatingDuration instance.
SubtractMicroseconds(decimal)
Creates a new FloatingDuration instance by subtracting the specified number of microseconds
.
[Pure]
public FloatingDuration SubtractMicroseconds(decimal microseconds)
Parameters
microseconds
decimalMicroseconds to subtract.
Returns
- FloatingDuration
New FloatingDuration instance.
SubtractMilliseconds(decimal)
Creates a new FloatingDuration instance by subtracting the specified number of milliseconds
.
[Pure]
public FloatingDuration SubtractMilliseconds(decimal milliseconds)
Parameters
milliseconds
decimalMilliseconds to subtract.
Returns
- FloatingDuration
New FloatingDuration instance.
SubtractMinutes(decimal)
Creates a new FloatingDuration instance by subtracting the specified number of minutes
.
[Pure]
public FloatingDuration SubtractMinutes(decimal minutes)
Parameters
minutes
decimalMinutes to subtract.
Returns
- FloatingDuration
New FloatingDuration instance.
SubtractSeconds(decimal)
Creates a new FloatingDuration instance by subtracting the specified number of seconds
.
[Pure]
public FloatingDuration SubtractSeconds(decimal seconds)
Parameters
seconds
decimalSeconds to subtract.
Returns
- FloatingDuration
New FloatingDuration instance.
SubtractTicks(decimal)
Creates a new FloatingDuration instance by subtracting the specified number of ticks
.
[Pure]
public FloatingDuration SubtractTicks(decimal ticks)
Parameters
ticks
decimalTicks to subtract.
Returns
- FloatingDuration
New FloatingDuration instance.
ToString()
Returns a string representation of this FloatingDuration instance.
[Pure]
public override string ToString()
Returns
- string
String representation.
TrimToHour()
Creates a new FloatingDuration instance by truncating this instance to hours.
[Pure]
public FloatingDuration TrimToHour()
Returns
- FloatingDuration
New FloatingDuration instance.
TrimToMicrosecond()
Creates a new FloatingDuration instance by truncating this instance to microseconds.
[Pure]
public FloatingDuration TrimToMicrosecond()
Returns
- FloatingDuration
New FloatingDuration instance.
TrimToMillisecond()
Creates a new FloatingDuration instance by truncating this instance to milliseconds.
[Pure]
public FloatingDuration TrimToMillisecond()
Returns
- FloatingDuration
New FloatingDuration instance.
TrimToMinute()
Creates a new FloatingDuration instance by truncating this instance to minutes.
[Pure]
public FloatingDuration TrimToMinute()
Returns
- FloatingDuration
New FloatingDuration instance.
TrimToSecond()
Creates a new FloatingDuration instance by truncating this instance to seconds.
[Pure]
public FloatingDuration TrimToSecond()
Returns
- FloatingDuration
New FloatingDuration instance.
TrimToTick()
Creates a new FloatingDuration instance by truncating this instance to ticks.
[Pure]
public FloatingDuration TrimToTick()
Returns
- FloatingDuration
New FloatingDuration instance.
Operators
operator +(FloatingDuration, FloatingDuration)
Creates a new FloatingDuration instance by adding a
and b
together.
[Pure]
public static FloatingDuration operator +(FloatingDuration a, FloatingDuration b)
Parameters
a
FloatingDurationFirst operand.
b
FloatingDurationSecond operand.
Returns
- FloatingDuration
New FloatingDuration instance.
operator /(FloatingDuration, decimal)
Creates a new FloatingDuration instance by dividing a
by b
.
[Pure]
public static FloatingDuration operator /(FloatingDuration a, decimal b)
Parameters
a
FloatingDurationFirst operand.
b
decimalSecond operand.
Returns
- FloatingDuration
New FloatingDuration instance.
Exceptions
- DivideByZeroException
When
b
is equal to 0.
operator ==(FloatingDuration, FloatingDuration)
Checks if a
is equal to b
.
[Pure]
public static bool operator ==(FloatingDuration a, FloatingDuration b)
Parameters
a
FloatingDurationFirst operand.
b
FloatingDurationSecond operand.
Returns
- bool
true when operands are equal, otherwise false.
explicit operator Duration(FloatingDuration)
Converts the provided floating duration to Duration.
[Pure]
public static explicit operator Duration(FloatingDuration d)
Parameters
d
FloatingDurationValue to convert.
Returns
explicit operator TimeSpan(FloatingDuration)
Converts the provided floating duration to TimeSpan.
[Pure]
public static explicit operator TimeSpan(FloatingDuration d)
Parameters
d
FloatingDurationValue to convert.
Returns
operator >(FloatingDuration, FloatingDuration)
Checks if a
is greater than b
.
[Pure]
public static bool operator >(FloatingDuration a, FloatingDuration b)
Parameters
a
FloatingDurationFirst operand.
b
FloatingDurationSecond operand.
Returns
- bool
true when
a
is greater thanb
, otherwise false.
operator >=(FloatingDuration, FloatingDuration)
Checks if a
is greater than or equal to b
.
[Pure]
public static bool operator >=(FloatingDuration a, FloatingDuration b)
Parameters
a
FloatingDurationFirst operand.
b
FloatingDurationSecond operand.
Returns
- bool
true when
a
is greater than or equal tob
, otherwise false.
operator !=(FloatingDuration, FloatingDuration)
Checks if a
is not equal to b
.
[Pure]
public static bool operator !=(FloatingDuration a, FloatingDuration b)
Parameters
a
FloatingDurationFirst operand.
b
FloatingDurationSecond operand.
Returns
- bool
true when operands are not equal, otherwise false.
operator <(FloatingDuration, FloatingDuration)
Checks if a
is less than b
.
[Pure]
public static bool operator <(FloatingDuration a, FloatingDuration b)
Parameters
a
FloatingDurationFirst operand.
b
FloatingDurationSecond operand.
Returns
- bool
true when
a
is less thanb
, otherwise false.
operator <=(FloatingDuration, FloatingDuration)
Checks if a
is less than or equal to b
.
[Pure]
public static bool operator <=(FloatingDuration a, FloatingDuration b)
Parameters
a
FloatingDurationFirst operand.
b
FloatingDurationSecond operand.
Returns
- bool
true when
a
is less than or equal tob
, otherwise false.
operator *(FloatingDuration, Percent)
Creates a new FloatingDuration instance by multiplying a
and b
together.
[Pure]
public static FloatingDuration operator *(FloatingDuration a, Percent b)
Parameters
a
FloatingDurationFirst operand.
b
PercentSecond operand.
Returns
- FloatingDuration
New FloatingDuration instance.
operator *(FloatingDuration, decimal)
Creates a new FloatingDuration instance by multiplying a
and b
together.
[Pure]
public static FloatingDuration operator *(FloatingDuration a, decimal b)
Parameters
a
FloatingDurationFirst operand.
b
decimalSecond operand.
Returns
- FloatingDuration
New FloatingDuration instance.
operator *(Percent, FloatingDuration)
Creates a new FloatingDuration instance by multiplying a
and b
together.
[Pure]
public static FloatingDuration operator *(Percent a, FloatingDuration b)
Parameters
a
PercentFirst operand.
b
FloatingDurationSecond operand.
Returns
- FloatingDuration
New FloatingDuration instance.
operator -(FloatingDuration, FloatingDuration)
Creates a new FloatingDuration instance by subtracting b
from a
.
[Pure]
public static FloatingDuration operator -(FloatingDuration a, FloatingDuration b)
Parameters
a
FloatingDurationFirst operand.
b
FloatingDurationSecond operand.
Returns
- FloatingDuration
New FloatingDuration instance.
operator -(FloatingDuration)
Creates a new FloatingDuration instance by negating the provided a
.
[Pure]
public static FloatingDuration operator -(FloatingDuration a)
Parameters
a
FloatingDurationOperand.
Returns
- FloatingDuration
New FloatingDuration instance.