lukashian library

The Lukashian Calendar — Dart implementation of The Lukashian Calendar Mechanism.

Core types (Year, Day, Instant) are calendar-key aware; call MillisecondStore.init (or MillisecondStore.loadProvider / MillisecondStore.loadAsyncProvider) before use.

See lukashian.org for the calendar itself. For differences from the Java reference library, see the README section Deviations from the Java reference implementation.

Classes

AsyncMillisecondStoreDataProvider
Async counterpart of MillisecondStoreDataProvider for providers that load data over HTTP, files, or other asynchronous I/O.
CalendarKeys
Keys that represent the various calendar instances in MillisecondStore.
CalendarObject
Common superclass of Year, Day and Instant.
Day
Represents a day in the Lukashian Calendar Mechanism.
ExternalResourceMillisecondStoreDataProvider
Base functionality for loading epoch millisecond arrays from an external resource (file or URL), so the exact numbers can be maintained centrally.
FileMillisecondStoreDataProvider
Loads binary epoch millisecond streams from the local filesystem.
Formatter
Provides methods for formatting instances of the Lukashian Calendar classes.
HttpMillisecondStoreDataProvider
Loads binary epoch millisecond streams over HTTP(S) using dart:io HttpClient.
Instant
A unique millisecond on the Lukashian timeline (millisecond 1 is the first). Also represents time-of-day as a Fraction — the proportion of the current Day that has passed — or as beeps (basis points, 0–9999); see en.wikipedia.org/wiki/Basis_point.
MillisecondStore
Singleton that manages the various instances of the Lukashian Calendar.
MillisecondStoreData
For each Day and Year, stores the number of milliseconds between the start of the calendar (the Lukashian epoch) and the end of that day or year. It also stores the offset between the Lukashian epoch and the UNIX epoch.
MillisecondStoreDataProvider
For each Day and Year, an implementation provides the number of milliseconds between the start of the calendar (the Lukashian epoch) and the end of that day or year ('epoch milliseconds'). It also stores the offset between the Lukashian epoch and the UNIX epoch. Using these numbers, the actual years and days of the Lukashian Calendar are defined.
StandardEarthHttpMillisecondStoreDataProvider
HttpMillisecondStoreDataProvider that loads from the official lukashian.org Standard Earth millisecond store.
StandardEarthMillisecondStoreDataProvider
An implementation of MillisecondStoreDataProvider that implements the Lukashian Calendar Mechanism for Earth: tropical (southern-solstice to southern-solstice) years, true solar days, TT-based, with year numbers roughly 3900 above the Gregorian calendar — see the Java class StandardEarthMillisecondStoreDataProvider for the full specification.
StandardMarsHttpMillisecondStoreDataProvider
HttpMillisecondStoreDataProvider that loads from the official lukashian.org Standard Mars millisecond store.
StandardMarsMillisecondStoreDataProvider
An implementation of MillisecondStoreDataProvider that implements the Lukashian Calendar Mechanism for Mars: tropical years and true solar sols, southern-solstice based — see the Java class StandardMarsMillisecondStoreDataProvider for the full specification (epoch choice, Pathfinder-related constraints, etc.).
Year
Represents a year in the Lukashian Calendar Mechanism.

Enums

DayFormat
The different ways to format a Day (see Formatter.formatDay).

Exceptions / Errors

LukashianException
An Exception in the Lukashian Calendar.