Class TimeSpanExtensions
- Namespace
- Cuemon.Extensions
- Assembly
- Cuemon.Extensions.Core.dll
Extension methods for the TimeSpan struct.
public static class TimeSpanExtensions
- Inheritance
-
TimeSpanExtensions
Examples
TimeSpanExtensions provides extension methods for TimeSpan including high-resolution unit queries (GetTotalNanoseconds, GetTotalMicroseconds) and interval snapping (Floor, Ceiling, Round). This example creates TimeSpan.FromHours(1) and TimeSpan.FromMinutes(280), then calls GetTotalNanoseconds and GetTotalMicroseconds on the hour, Floor(1, TimeUnit.Hours) and Ceiling(1, TimeUnit.Hours) on 280 minutes, and Round on 45 minutes with both up and down directions. Console output shows the nanosecond and microsecond values, the floored/ceiling hours, and the rounded minutes.
using System;
using Cuemon;
using Cuemon.Extensions;
namespace MyApp.Examples;
public static class TimeSpanExtensionsExample
{
public static void Demonstrate()
{
var hour = TimeSpan.FromHours(1);
var duration = TimeSpan.FromMinutes(280);
var shortDuration = TimeSpan.FromMinutes(45);
Console.WriteLine(hour.GetTotalNanoseconds());
Console.WriteLine(hour.GetTotalMicroseconds());
Console.WriteLine(duration.Floor(1, TimeUnit.Hours));
Console.WriteLine(duration.Ceiling(1, TimeUnit.Hours));
Console.WriteLine(shortDuration.Round(TimeSpan.FromHours(1), VerticalDirection.Up));
Console.WriteLine(shortDuration.Round(30, TimeUnit.Minutes, VerticalDirection.Down));
}
}
Fields
TicksPerMicrosecond
Represents the number of ticks in 1 microsecond. This field is constant.
public const double TicksPerMicrosecond = 10
Field Value
TicksPerNanosecond
Represents the number of ticks in 1 nanosecond. This field is constant.
public const double TicksPerNanosecond = 0.01
Field Value
Methods
Ceiling(TimeSpan, double, TimeUnit)
Returns a TimeSpan value that is rounded towards positive infinity.
public static TimeSpan Ceiling(this TimeSpan value, double interval, TimeUnit timeUnit)
Parameters
valueTimeSpanA TimeSpan value to be rounded.
intervaldoubleThe double value that in combination with
timeUnitspecifies the rounding ofvalue.timeUnitTimeUnitOne of the enumeration values that specifies the time unit of
interval.
Returns
Ceiling(TimeSpan, TimeSpan)
Returns a TimeSpan value that is rounded towards positive infinity.
public static TimeSpan Ceiling(this TimeSpan value, TimeSpan interval)
Parameters
valueTimeSpanA TimeSpan value to be rounded.
intervalTimeSpanThe TimeSpan value that specifies the rounding of
value.
Returns
Floor(TimeSpan, double, TimeUnit)
Returns a TimeSpan value that is rounded towards negative infinity.
public static TimeSpan Floor(this TimeSpan value, double interval, TimeUnit timeUnit)
Parameters
valueTimeSpanA TimeSpan value to be rounded.
intervaldoubleThe double value that in combination with
timeUnitspecifies the rounding ofvalue.timeUnitTimeUnitOne of the enumeration values that specifies the time unit of
interval.
Returns
Floor(TimeSpan, TimeSpan)
Returns a TimeSpan value that is rounded towards negative infinity.
public static TimeSpan Floor(this TimeSpan value, TimeSpan interval)
Parameters
valueTimeSpanA TimeSpan value to be rounded.
intervalTimeSpanThe TimeSpan value that specifies the rounding of
value.
Returns
GetTotalMicroseconds(TimeSpan)
Gets the total number of microseconds represented by the specified TimeSpan structure.
public static double GetTotalMicroseconds(this TimeSpan value)
Parameters
Returns
GetTotalNanoseconds(TimeSpan)
Gets the total number of nanoseconds represented by the specified TimeSpan structure.
public static double GetTotalNanoseconds(this TimeSpan value)
Parameters
Returns
Round(TimeSpan, double, TimeUnit, VerticalDirection)
Returns a TimeSpan value that is rounded either towards negative infinity or positive infinity.
public static TimeSpan Round(this TimeSpan value, double interval, TimeUnit timeUnit, VerticalDirection direction)
Parameters
valueTimeSpanA TimeSpan value to be rounded.
intervaldoubleThe double value that in combination with
timeUnitspecifies the rounding ofvalue.timeUnitTimeUnitOne of the enumeration values that specifies the time unit of
interval.directionVerticalDirectionOne of the enumeration values that specifies the direction of the rounding.
Returns
Exceptions
- ArgumentOutOfRangeException
directionis an invalid enumeration value.
Round(TimeSpan, TimeSpan, VerticalDirection)
Returns a TimeSpan value that is rounded either towards negative infinity or positive infinity.
public static TimeSpan Round(this TimeSpan value, TimeSpan interval, VerticalDirection direction)
Parameters
valueTimeSpanA TimeSpan value to be rounded.
intervalTimeSpanThe TimeSpan value that specifies the rounding of
value.directionVerticalDirectionOne of the enumeration values that specifies the direction of the rounding.
Returns
Exceptions
- ArgumentOutOfRangeException
directionis an invalid enumeration value.