mirror of
https://github.com/acamarata/temporal-hijri.git
synced 2026-06-30 19:04:29 +00:00
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.
1.3 KiB
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
Quick links
- GitHub repository
- npm package
- hijri-core — the underlying calendar engine
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 nativeTemporalis unavailable)