Duration
Namespace: Shadop.Archmage.Sdk
Represents a duration as a signed number of nanoseconds.
public struct DurationInheritance Object → ValueType → Duration
Implements IEquatable
Remarks:
Duration provides methods to retrieve duration in various units (nanoseconds, microseconds, milliseconds, seconds, minutes, hours) and supports arithmetic operations, comparisons, and JSON serialization.
The struct uses nanosecond precision internally and includes static readonly constants for common durations. The ToString method formats durations in a human-readable format like “1h30m5s”.
Duration serializes to and from a compact JSON array format for efficient storage.
Fields
Section titled “Fields”public static Duration Zero;Nanosecond
Section titled “Nanosecond”public static Duration Nanosecond;Microsecond
Section titled “Microsecond”public static Duration Microsecond;Millisecond
Section titled “Millisecond”public static Duration Millisecond;Second
Section titled “Second”public static Duration Second;Minute
Section titled “Minute”public static Duration Minute;public static Duration Hour;Constructors
Section titled “Constructors”Duration(Int64)
Section titled “Duration(Int64)”Duration(long nanoseconds)Parameters
Section titled “Parameters”nanoseconds Int64
Methods
Section titled “Methods”Returns the absolute value of the duration.
Duration Abs()Returns
Section titled “Returns”Hours()
Section titled “Hours()”Returns floating-point duration in hours (may lose precision).
double Hours()Returns
Section titled “Returns”Minutes()
Section titled “Minutes()”Returns floating-point duration in minutes (may lose precision).
double Minutes()Returns
Section titled “Returns”Seconds()
Section titled “Seconds()”Returns floating-point duration in seconds (may lose precision).
double Seconds()Returns
Section titled “Returns”Milliseconds()
Section titled “Milliseconds()”Returns integer millisecond count (truncates sub-millisecond precision).
long Milliseconds()Returns
Section titled “Returns”Microseconds()
Section titled “Microseconds()”Returns integer microsecond count (truncates sub-microsecond precision).
long Microseconds()Returns
Section titled “Returns”Nanoseconds()
Section titled “Nanoseconds()”long Nanoseconds()Returns
Section titled “Returns”Truncate(Duration)
Section titled “Truncate(Duration)”Returns the result of truncating this duration toward zero to the nearest multiple of the specified duration.
Duration Truncate(Duration m)Parameters
Section titled “Parameters”m Duration
The divisor duration. If zero or negative, this duration is returned unchanged.
Returns
Section titled “Returns”Duration
A Duration truncated to a multiple of m.
Round(Duration)
Section titled “Round(Duration)”Returns the result of rounding this duration to the nearest multiple of the specified duration.
Duration Round(Duration m)Parameters
Section titled “Parameters”m Duration
The divisor duration. If zero or negative, this duration is returned unchanged.
Returns
Section titled “Returns”Duration
A Duration rounded to the nearest multiple of m.
ToString()
Section titled “ToString()”Formats the duration as a human-readable string.
string ToString()Returns
Section titled “Returns”String
A formatted duration string.
Remarks:
Examples: “1h30m5s”, “500ms”, “1us”, “-2h15m”.
ToTimeSpan()
Section titled “ToTimeSpan()”Converts to TimeSpan (100-nanosecond precision; may lose sub-tick precision).
TimeSpan ToTimeSpan()Returns
Section titled “Returns”FromTimeSpan(TimeSpan)
Section titled “FromTimeSpan(TimeSpan)”Creates Duration from TimeSpan.
Duration FromTimeSpan(TimeSpan timeSpan)Parameters
Section titled “Parameters”timeSpan TimeSpan
Returns
Section titled “Returns”CompareTo(Duration)
Section titled “CompareTo(Duration)”int CompareTo(Duration other)Parameters
Section titled “Parameters”other Duration
Returns
Section titled “Returns”Equals(Duration)
Section titled “Equals(Duration)”bool Equals(Duration other)Parameters
Section titled “Parameters”other Duration
Returns
Section titled “Returns”Equals(Object)
Section titled “Equals(Object)”bool Equals(object obj)Parameters
Section titled “Parameters”obj Object
Returns
Section titled “Returns”GetHashCode()
Section titled “GetHashCode()”int GetHashCode()