temporal-hijri/.wiki/Home.md
Aric Camarata 51e07a65b3 feat: initial release of temporal-hijri v1.0.0
Temporal Calendar Protocol implementation for Hijri calendar via hijri-core.
Provides HijriCalendar base class, UaqCalendar (UAQ engine), FcnaCalendar
(FCNA engine), and convenience singletons uaqCalendar/fcnaCalendar.

Calendar protocol: year, month, monthCode, day, daysInMonth, daysInYear,
monthsInYear, inLeapYear, dayOfWeek, dayOfYear, weekOfYear, daysInWeek,
dateFromFields, yearMonthFromFields, monthDayFromFields, dateAdd,
dateUntil, mergeFields.

dateAdd applies year/month increments in Hijri coordinate space (correct
semantics for variable-length lunar months), then applies days/weeks in
ISO space. Day-of-month clamped on month boundary changes. 18 ESM + 8 CJS
tests passing. Dual CJS/ESM build.
2026-02-25 14:17:27 -05:00

1.3 KiB

temporal-hijri

Temporal Calendar Protocol implementation for the Hijri calendar system.

This package provides UaqCalendar and FcnaCalendar as plug-in calendar objects for the TC39 Temporal proposal. It bridges the ISO-centric Temporal.PlainDate API with Hijri date arithmetic via hijri-core.

Pages

  • Home — you are here
  • API Reference — full method signatures and return types
  • Architecture — design decisions, protocol internals, arithmetic strategy

Calendar systems

Calendar ID Description
Umm al-Qura hijri-uaq Official Saudi calendar, table-driven, covers 1318-1500 AH
FCNA/ISNA hijri-fcna North American standard, astronomical new moon calculation

Requirements

  • Node.js 20+
  • hijri-core ^1.0.0 (peer dependency)
  • @js-temporal/polyfill ^0.4.0 (optional peer dependency — needed if native Temporal is unavailable)

Home · API Reference · Architecture