docs / stdlib / time

Stdlib index
  1. Overview
  1. Captured-borrow migration worklist (3.3.3)
  2. Owned-bind migration worklist (8.2.7)
  3. Return-side title audit — the ride-through enumeration
  4. stdlib ownership audit
  5. stdlib ownership dispositions (plan 1.3.1 / 4.3.1)

aot

  1. Components
  2. Scope
  3. Scoped

codec

  1. Base32
  2. Base64

codec / csv

  1. Csv

codec / json

  1. Json

collection

  1. ArrayList
  2. BPlusTree
  3. Cache
  4. Collectors
  5. HashMap
  6. HashSet
  7. Heap
  8. ImmutableList
  9. ImmutableMap
  10. ImmutableSet
  11. LinkedList
  12. RedBlackTree
  13. Sort

collection / ltm

  1. LtmBPlusTree

concurrent

  1. AtomicInt32
  2. AtomicInt64
  3. Channel
  4. Fiber
  5. FiberLocal
  6. Lock
  7. Mutex
  8. RwLock
  9. Semaphore
  10. Tasks

error

  1. Exception
  2. NoOptionalValueException
  3. NotProvidedException
  4. RecoverableException
  5. ScopedBuildFailedException
  6. ScopeNotActiveException
  7. Throwable
  8. UnrecoverableException

gfx

  1. Sampler
  2. Texture2D

hash

  1. DefaultHasher
  2. Hash
  3. SipHash
  4. XXHash3

ifx

  1. BackendRegistry
  2. Window

io

  1. Buffer

io / file

  1. File
  2. FileInfo
  3. FileReader
  4. FileWriter
  5. Path
  6. Watcher

io / net

  1. BufferPool
  2. ByteBuffer
  3. IpAddress
  4. Server
  5. ServerBuilder
  6. SocketAddress
  7. TcpListener
  8. TcpStream
  9. UdpSocket

io / net / dns

  1. Dns

io / net / uri

  1. Uri
  2. UriBuilder

lang

  1. Guid
  2. Math
  3. Optional
  4. Pair
  5. Slice
  6. String
  7. StringBuilder

lang / stream

  1. ArrayStream
  2. Stream

math

  1. Camera
  2. Color
  3. DType
  4. Ray
  5. Rotation
  6. Tensor
  7. Transform

math / fft

  1. Fft

math / linalg

  1. LinAlg

math / npio

  1. Npy

math / poly

  1. Poly

math / random

  1. Generator

math / stats

  1. Stats

nucleo

  1. Columns — the Arrow-laid-out substrate
  2. Fused tensor expressions — Fuse
  3. Table — the lazy, typed dataframe
  4. Tape — define-by-run autograd
  5. Transform intrinsics — Grad, Vmap, Jit

process

  1. Command
  2. Process

reflect

  1. Class

search / distance

  1. Distance

search / fuzzy

  1. Matcher

search / ngram

  1. Index

session

  1. PackageInstallException
  2. Packages

time

  1. Clock
  2. DateTimeFormatter
  3. Duration
  4. Instant
  5. LocalDate
  6. LocalDateTime
  7. LocalTime
  8. Period
  9. ZonedDateTime
  10. ZoneId
  11. ZoneOffset

wire

  1. Compressor
  2. CompressStream
  3. DecompressionLimitException
  4. Decompressor
  5. Encoder
  6. Schema
  7. SchemaEncoder

xpu

  1. Device
  2. KernelBuffer
  3. KernelStream
  4. KernelTimer

xpu / mesh

  1. MeshSimplifier

Period

cajeta.time.Period — an immutable calendar-based amount of time (years, months, and days), modeled on java.time.Period. Distinct from Duration, which measures a fixed number of seconds/nanos: months and years are not fixed-length. Each field is independent and signed; there is no automatic normalization between days and months — normalized() only rolls months into years. A pure stack value type. Pair with LocalDate to shift calendar dates.

Period p = Period.of(1, 2, 10);
Period w = Period.ofWeeks(2);
Period q = p.plus(w);
int64 months = q.toTotalMonths();   // 14
String text #= q.iso();              // "P1Y2M24D"

Methods

Signature
Period(int32 years, int32 months, int32 days)Constructs a period directly from its three signed fields
static Period of(int32 years, int32 months, int32 days) ⚑A period of years years, months months and days days
static Period ofYears(int32 years) ⚑A period of years years
static Period ofMonths(int32 months) ⚑A period of months months
static Period ofWeeks(int32 weeks)A period of weeks weeks (stored as weeks * 7 days)
static Period ofDays(int32 days) ⚑A period of days days
static Period zero()The zero period (all fields 0)
int32 getYears()The years field
int32 getMonths()The months field
int32 getDays()The days field
int64 toTotalMonths()Total months (years * 12 + months)
boolean isZero()True iff every field is zero
boolean isNegative()True iff any field is negative
Period plus(Period other)Field-wise sum
Period minus(Period other)Field-wise difference
Period negated()Each field negated
Period normalized()Months rolled into years so the month part lands in [-11, 11]; days untouched
int64 hash()Content hash mixing the three fields
#String iso()ISO-8601 PnYnMnD
static boolean operator== (Period a, Period b)Value equality — a == b

⚑ = @EntryPoint

See also

Source: docs/stdlib/time/Period.md · 2 min read · 343 words