Module

Temporal.TimeDuration

Package
purescript-temporal
Repository
philippedev101/purescript-temporal

A time-only duration (hours through nanoseconds) with total Semigroup and Monoid instances.

Unlike Duration, TimeDuration has no calendar components (years, months, weeks, days), so addition is always total — it never fails. This makes it suitable for use with fold, foldMap, and other PureScript combinators.

Use TimeDuration for elapsed time, timers, time tracking, and aggregation.

#TimeDuration Source

newtype TimeDuration

A duration restricted to time components only (hours, minutes, seconds, milliseconds, microseconds, nanoseconds). No calendar components.

Addition is total: TimeDuration values can always be added without requiring a relativeTo reference point.

Constructors

Instances

#fromDuration Source

fromDuration :: Duration -> Maybe TimeDuration

Try to convert a Duration to a TimeDuration. Returns Nothing if the duration has non-zero calendar components (years, months, weeks, days).

#toDuration Source

toDuration :: TimeDuration -> Duration

Convert back to a Duration. Always succeeds.

#timeDuration Source

timeDuration :: { hours :: Number, microseconds :: Number, milliseconds :: Number, minutes :: Number, nanoseconds :: Number, seconds :: Number } -> Maybe TimeDuration

Construct from individual time fields. Returns Nothing if signs are mixed.

#fromHours Source

fromHours :: Number -> TimeDuration

Create from hours.

#fromMinutes Source

fromMinutes :: Number -> TimeDuration

Create from minutes.

#fromSeconds Source

fromSeconds :: Number -> TimeDuration

Create from seconds.

#fromMilliseconds Source

fromMilliseconds :: Number -> TimeDuration

Create from milliseconds.

#fromMicroseconds Source

fromMicroseconds :: Number -> TimeDuration

Create from microseconds.

#fromNanoseconds Source

fromNanoseconds :: Number -> TimeDuration

Create from nanoseconds.

#negate Source

negate :: TimeDuration -> TimeDuration

Negate the duration.

#abs Source

abs :: TimeDuration -> TimeDuration

Absolute value.

#zero Source

zero :: TimeDuration

The zero time duration. mempty alias.