Table of Contents

Struct FloatingDuration

Namespace
LfrlAnvil.Chrono
Assembly
LfrlAnvil.Chrono.dll

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

duration Duration

Source Duration.

FloatingDuration(decimal)

Creates a new FloatingDuration instance.

public FloatingDuration(decimal ticks)

Parameters

ticks decimal

Number 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 int

Number of hours.

minutes int

Number of minutes.

seconds int

Number of seconds.

milliseconds int

Number of milliseconds.

microseconds int

Number of microseconds.

ticks decimal

Number of ticks.

FloatingDuration(TimeSpan)

Creates a new FloatingDuration instance.

public FloatingDuration(TimeSpan timeSpan)

Parameters

timeSpan TimeSpan

Source TimeSpan.

Fields

MaxValue

Specifies minimum possible FloatingDuration.

public static readonly FloatingDuration MaxValue

Field Value

FloatingDuration

MinValue

Specifies maximum possible FloatingDuration.

public static readonly FloatingDuration MinValue

Field Value

FloatingDuration

Zero

Specifies the FloatingDuration of 0 length.

public static readonly FloatingDuration Zero

Field Value

FloatingDuration

Properties

FullHours

Total number of full hours.

public long FullHours { get; }

Property Value

long

FullMicroseconds

Total number of full microseconds.

public long FullMicroseconds { get; }

Property Value

long

FullMilliseconds

Total number of full milliseconds.

public long FullMilliseconds { get; }

Property Value

long

FullMinutes

Total number of full minutes.

public long FullMinutes { get; }

Property Value

long

FullSeconds

Total number of full seconds.

public long FullSeconds { get; }

Property Value

long

FullTicks

Total number of full ticks.

public long FullTicks { get; }

Property Value

long

MicrosecondsInMillisecond

Number of microseconds in the millisecond component.

public int MicrosecondsInMillisecond { get; }

Property Value

int

MillisecondsInSecond

Number of milliseconds in the second component.

public int MillisecondsInSecond { get; }

Property Value

int

MinutesInHour

Number of minutes in the hour component.

public int MinutesInHour { get; }

Property Value

int

SecondsInMinute

Number of seconds in the minute component.

public int SecondsInMinute { get; }

Property Value

int

Ticks

Total number of ticks. One tick is equivalent to 100 nanoseconds.

public decimal Ticks { get; }

Property Value

decimal

TicksInMicrosecond

Number of ticks in the microsecond component.

public decimal TicksInMicrosecond { get; }

Property Value

decimal

TotalHours

Total number of hours.

public decimal TotalHours { get; }

Property Value

decimal

TotalMicroseconds

Total number of microseconds.

public decimal TotalMicroseconds { get; }

Property Value

decimal

TotalMilliseconds

Total number of milliseconds.

public decimal TotalMilliseconds { get; }

Property Value

decimal

TotalMinutes

Total number of minutes.

public decimal TotalMinutes { get; }

Property Value

decimal

TotalSeconds

Total number of seconds.

public decimal TotalSeconds { get; }

Property Value

decimal

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 FloatingDuration

Other 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 decimal

Hours 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 decimal

Microseconds 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 decimal

Milliseconds 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 decimal

Minutes 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 decimal

Seconds 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 decimal

Ticks 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 FloatingDuration

An 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 object

An 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 decimal

Value 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 FloatingDuration

An object to compare with this object.

Returns

bool

true if the current object is equal to the other parameter; otherwise, false.

Equals(object?)

Indicates whether this instance and a specified object are equal.

[Pure]
public override bool Equals(object? obj)

Parameters

obj object

The 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 decimal

Number of hours.

Returns

FloatingDuration

New FloatingDuration instance.

FromMicroseconds(decimal)

Creates a new FloatingDuration instance.

[Pure]
public static FloatingDuration FromMicroseconds(decimal microseconds)

Parameters

microseconds decimal

Number of microseconds.

Returns

FloatingDuration

New FloatingDuration instance.

FromMilliseconds(decimal)

Creates a new FloatingDuration instance.

[Pure]
public static FloatingDuration FromMilliseconds(decimal milliseconds)

Parameters

milliseconds decimal

Number of milliseconds.

Returns

FloatingDuration

New FloatingDuration instance.

FromMinutes(decimal)

Creates a new FloatingDuration instance.

[Pure]
public static FloatingDuration FromMinutes(decimal minutes)

Parameters

minutes decimal

Number of minutes.

Returns

FloatingDuration

New FloatingDuration instance.

FromSeconds(decimal)

Creates a new FloatingDuration instance.

[Pure]
public static FloatingDuration FromSeconds(decimal seconds)

Parameters

seconds decimal

Number of seconds.

Returns

FloatingDuration

New FloatingDuration instance.

FromTicks(decimal)

Creates a new FloatingDuration instance.

[Pure]
public static FloatingDuration FromTicks(decimal ticks)

Parameters

ticks decimal

Number 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 Percent

Percent 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 decimal

Value 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 long

New 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 int

New 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 int

New 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 int

New 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 int

New 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 decimal

New 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 FloatingDuration

Other 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 decimal

Hours 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 decimal

Microseconds 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 decimal

Milliseconds 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 decimal

Minutes 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 decimal

Seconds 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 decimal

Ticks 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 FloatingDuration

First operand.

b FloatingDuration

Second 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 FloatingDuration

First operand.

b decimal

Second 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 FloatingDuration

First operand.

b FloatingDuration

Second 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 FloatingDuration

Value to convert.

Returns

Duration

New Duration instance.

explicit operator TimeSpan(FloatingDuration)

Converts the provided floating duration to TimeSpan.

[Pure]
public static explicit operator TimeSpan(FloatingDuration d)

Parameters

d FloatingDuration

Value to convert.

Returns

TimeSpan

New TimeSpan instance.

operator >(FloatingDuration, FloatingDuration)

Checks if a is greater than b.

[Pure]
public static bool operator >(FloatingDuration a, FloatingDuration b)

Parameters

a FloatingDuration

First operand.

b FloatingDuration

Second operand.

Returns

bool

true when a is greater than b, 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 FloatingDuration

First operand.

b FloatingDuration

Second operand.

Returns

bool

true when a is greater than or equal to b, otherwise false.

operator !=(FloatingDuration, FloatingDuration)

Checks if a is not equal to b.

[Pure]
public static bool operator !=(FloatingDuration a, FloatingDuration b)

Parameters

a FloatingDuration

First operand.

b FloatingDuration

Second 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 FloatingDuration

First operand.

b FloatingDuration

Second operand.

Returns

bool

true when a is less than b, 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 FloatingDuration

First operand.

b FloatingDuration

Second operand.

Returns

bool

true when a is less than or equal to b, 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 FloatingDuration

First operand.

b Percent

Second 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 FloatingDuration

First operand.

b decimal

Second 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 Percent

First operand.

b FloatingDuration

Second 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 FloatingDuration

First operand.

b FloatingDuration

Second 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 FloatingDuration

Operand.

Returns

FloatingDuration

New FloatingDuration instance.