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
ticksdecimalNumber 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
hoursintNumber of hours.
minutesintNumber of minutes.
secondsintNumber of seconds.
millisecondsintNumber of milliseconds.
microsecondsintNumber of microseconds.
ticksdecimalNumber 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
otherFloatingDurationOther 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
hoursdecimalHours 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
microsecondsdecimalMicroseconds 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
millisecondsdecimalMilliseconds 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
minutesdecimalMinutes 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
secondsdecimalSeconds 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
ticksdecimalTicks 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
otherFloatingDurationAn 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 otherin the sort order.Zero This instance occurs in the same position in the sort order as other.Greater than zero This instance follows otherin 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
objobjectAn 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 objin the sort order.Zero This instance occurs in the same position in the sort order as obj.Greater than zero This instance follows objin the sort order.
Exceptions
- ArgumentException
objis 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
divisordecimalValue to divide by.
Returns
- FloatingDuration
New FloatingDuration instance.
Exceptions
- DivideByZeroException
When
divisoris 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
otherFloatingDurationAn 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
objobjectThe object to compare with the current instance.
Returns
- bool
true if
objand 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
hoursdecimalNumber of hours.
Returns
- FloatingDuration
New FloatingDuration instance.
FromMicroseconds(decimal)
Creates a new FloatingDuration instance.
[Pure]
public static FloatingDuration FromMicroseconds(decimal microseconds)
Parameters
microsecondsdecimalNumber of microseconds.
Returns
- FloatingDuration
New FloatingDuration instance.
FromMilliseconds(decimal)
Creates a new FloatingDuration instance.
[Pure]
public static FloatingDuration FromMilliseconds(decimal milliseconds)
Parameters
millisecondsdecimalNumber of milliseconds.
Returns
- FloatingDuration
New FloatingDuration instance.
FromMinutes(decimal)
Creates a new FloatingDuration instance.
[Pure]
public static FloatingDuration FromMinutes(decimal minutes)
Parameters
minutesdecimalNumber of minutes.
Returns
- FloatingDuration
New FloatingDuration instance.
FromSeconds(decimal)
Creates a new FloatingDuration instance.
[Pure]
public static FloatingDuration FromSeconds(decimal seconds)
Parameters
secondsdecimalNumber of seconds.
Returns
- FloatingDuration
New FloatingDuration instance.
FromTicks(decimal)
Creates a new FloatingDuration instance.
[Pure]
public static FloatingDuration FromTicks(decimal ticks)
Parameters
ticksdecimalNumber 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
percentPercentPercent 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
multiplierdecimalValue 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
valuelongNew 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
valueintNew value.
Returns
- FloatingDuration
New FloatingDuration instance.
Exceptions
- ArgumentOutOfRangeException
When
valueis 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
valueintNew value.
Returns
- FloatingDuration
New FloatingDuration instance.
Exceptions
- ArgumentOutOfRangeException
When
valueis 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
valueintNew value.
Returns
- FloatingDuration
New FloatingDuration instance.
Exceptions
- ArgumentOutOfRangeException
When
valueis 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
valueintNew value.
Returns
- FloatingDuration
New FloatingDuration instance.
Exceptions
- ArgumentOutOfRangeException
When
valueis 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
valuedecimalNew value.
Returns
- FloatingDuration
New FloatingDuration instance.
Exceptions
- ArgumentOutOfRangeException
When
valueis 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
otherFloatingDurationOther 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
hoursdecimalHours 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
microsecondsdecimalMicroseconds 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
millisecondsdecimalMilliseconds 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
minutesdecimalMinutes 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
secondsdecimalSeconds 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
ticksdecimalTicks 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
aFloatingDurationFirst operand.
bFloatingDurationSecond 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
aFloatingDurationFirst operand.
bdecimalSecond operand.
Returns
- FloatingDuration
New FloatingDuration instance.
Exceptions
- DivideByZeroException
When
bis equal to 0.
operator ==(FloatingDuration, FloatingDuration)
Checks if a is equal to b.
[Pure]
public static bool operator ==(FloatingDuration a, FloatingDuration b)
Parameters
aFloatingDurationFirst operand.
bFloatingDurationSecond 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
dFloatingDurationValue to convert.
Returns
explicit operator TimeSpan(FloatingDuration)
Converts the provided floating duration to TimeSpan.
[Pure]
public static explicit operator TimeSpan(FloatingDuration d)
Parameters
dFloatingDurationValue to convert.
Returns
operator >(FloatingDuration, FloatingDuration)
Checks if a is greater than b.
[Pure]
public static bool operator >(FloatingDuration a, FloatingDuration b)
Parameters
aFloatingDurationFirst operand.
bFloatingDurationSecond operand.
Returns
- bool
true when
ais 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
aFloatingDurationFirst operand.
bFloatingDurationSecond operand.
Returns
- bool
true when
ais 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
aFloatingDurationFirst operand.
bFloatingDurationSecond 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
aFloatingDurationFirst operand.
bFloatingDurationSecond operand.
Returns
- bool
true when
ais 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
aFloatingDurationFirst operand.
bFloatingDurationSecond operand.
Returns
- bool
true when
ais 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
aFloatingDurationFirst operand.
bPercentSecond 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
aFloatingDurationFirst operand.
bdecimalSecond 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
aPercentFirst operand.
bFloatingDurationSecond 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
aFloatingDurationFirst operand.
bFloatingDurationSecond 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
aFloatingDurationOperand.
Returns
- FloatingDuration
New FloatingDuration instance.