Under heavy development. This site describes the intended 1.0 language. Current features and performance vary. Development status
Sn50SnThe SnAPI programming language
0.2.0 Preview 1 · Frozen documentation

DurationUnits

Names an i64-count fixed duration unit of 1/1000000000 seconds.

Sn is under heavy development. Reference extracted from this release’s bundled standard library. Public API examples are not an exhaustive compatibility test. Read the matching release guide for tested workflows and limitations. Read the status →

Module std.time

import std.time;

Public declaration contracts and authored examples. A page can document several related symbols. Implementation bodies are excluded.

Nanoseconds

pub alias Nanoseconds = Duration<i64, 1_u64, 1000000000_u64>;

Names an i64-count fixed duration unit of 1/1000000000 seconds. Note: Calendar months/years are mean Gregorian fixed durations, not date arithmetic.

Example

module example.duration_units;
from std.time import Nanoseconds, Microseconds, Milliseconds, Seconds, Minutes,
    Hours, Days, Weeks, Months, Years, Decades, Centuries, Millennia, MillionYears, BillionYears;
fn Main() -> i32 {
    if Nanoseconds.Create(1).Count != 1 || Nanoseconds.Period().Denominator != 1000000000 { return 1; }
    if Microseconds.Period().Denominator != 1000000 || Milliseconds.Period().Denominator != 1000 { return 2; }
    if Seconds.Period().Numerator != 1 || Minutes.Period().Numerator != 60 { return 3; }
    if Hours.Period().Numerator != 3600 || Days.Period().Numerator != 86400 { return 4; }
    if Weeks.Period().Numerator != 604800 || Months.Period().Numerator != 2629746 { return 5; }
    if Years.Period().Numerator != 31556952 || Decades.Period().Numerator != 315569520 { return 6; }
    if Centuries.Period().Numerator != 3155695200 || Millennia.Period().Numerator != 31556952000 { return 7; }
    if MillionYears.Period().Numerator != 31556952000000 { return 8; }
    if BillionYears.Period().Numerator != 31556952000000000 { return 9; }
    return 0;
}

Microseconds

pub alias Microseconds = Duration<i64, 1_u64, 1000000_u64>;

Names an i64-count fixed duration unit of 1/1000000 seconds. Note: Calendar months/years are mean Gregorian fixed durations, not date arithmetic.

Milliseconds

pub alias Milliseconds = Duration<i64, 1_u64, 1000_u64>;

Names an i64-count fixed duration unit of 1/1000 seconds. Note: Calendar months/years are mean Gregorian fixed durations, not date arithmetic.

Seconds

pub alias Seconds = Duration<i64, 1_u64, 1_u64>;

Names an i64-count fixed duration unit of 1/1 seconds. Note: Calendar months/years are mean Gregorian fixed durations, not date arithmetic.

Minutes

pub alias Minutes = Duration<i64, 60_u64, 1_u64>;

Names an i64-count fixed duration unit of 60/1 seconds. Note: Calendar months/years are mean Gregorian fixed durations, not date arithmetic.

Hours

pub alias Hours = Duration<i64, 3600_u64, 1_u64>;

Names an i64-count fixed duration unit of 3600/1 seconds. Note: Calendar months/years are mean Gregorian fixed durations, not date arithmetic.

Days

pub alias Days = Duration<i64, 86400_u64, 1_u64>;

Names an i64-count fixed duration unit of 86400/1 seconds. Note: Calendar months/years are mean Gregorian fixed durations, not date arithmetic.

Weeks

pub alias Weeks = Duration<i64, 604800_u64, 1_u64>;

Names an i64-count fixed duration unit of 604800/1 seconds. Note: Calendar months/years are mean Gregorian fixed durations, not date arithmetic.

Months

pub alias Months = Duration<i64, 2629746_u64, 1_u64>;

Names an i64-count fixed duration unit of 2629746/1 seconds. Note: Calendar months/years are mean Gregorian fixed durations, not date arithmetic.

Years

pub alias Years = Duration<i64, 31556952_u64, 1_u64>;

Names an i64-count fixed duration unit of 31556952/1 seconds. Note: Calendar months/years are mean Gregorian fixed durations, not date arithmetic.

Decades

pub alias Decades = Duration<i64, 315569520_u64, 1_u64>;

Names an i64-count fixed duration unit of 315569520/1 seconds. Note: Calendar months/years are mean Gregorian fixed durations, not date arithmetic.

Centuries

pub alias Centuries = Duration<i64, 3155695200_u64, 1_u64>;

Names an i64-count fixed duration unit of 3155695200/1 seconds. Note: Calendar months/years are mean Gregorian fixed durations, not date arithmetic.

Millennia

pub alias Millennia = Duration<i64, 31556952000_u64, 1_u64>;

Names an i64-count fixed duration unit of 31556952000/1 seconds. Note: Calendar months/years are mean Gregorian fixed durations, not date arithmetic.

MillionYears

pub alias MillionYears = Duration<i64, 31556952000000_u64, 1_u64>;

Names an i64-count fixed duration unit of 31556952000000/1 seconds. Note: Calendar months/years are mean Gregorian fixed durations, not date arithmetic.

BillionYears

pub alias BillionYears = Duration<i64, 31556952000000000_u64, 1_u64>;

Names an i64-count fixed duration unit of 31556952000000000/1 seconds. Note: Calendar months/years are mean Gregorian fixed durations, not date arithmetic.

Documentation snapshot: October 24, 2026 About versions ↗
Searching Development · language & standard library