mirror of
https://github.com/acamarata/temporal-hijri.git
synced 2026-07-01 19:34: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.
34 lines
1.3 KiB
Markdown
34 lines
1.3 KiB
Markdown
# 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](https://github.com/acamarata/hijri-core).
|
|
|
|
## Pages
|
|
|
|
- [Home](Home) — you are here
|
|
- [API Reference](API-Reference) — full method signatures and return types
|
|
- [Architecture](Architecture) — design decisions, protocol internals, arithmetic strategy
|
|
|
|
## Quick links
|
|
|
|
- [GitHub repository](https://github.com/acamarata/temporal-hijri)
|
|
- [npm package](https://www.npmjs.com/package/temporal-hijri)
|
|
- [hijri-core](https://github.com/acamarata/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 native `Temporal` is unavailable)
|
|
|
|
---
|
|
|
|
[Home](Home) · [API Reference](API-Reference) · [Architecture](Architecture)
|