hijri-core-dart/.github/wiki/guides/quickstart.md
2026-05-29 06:34:30 -04:00

1 KiB

Quickstart

Install

Add to pubspec.yaml:

dependencies:
  hijri_core: ^1.0.0

Run dart pub get.

Gregorian to Hijri

import 'package:hijri_core/hijri_core.dart';

void main() {
  final hijri = toHijri(DateTime.utc(2025, 3, 1));
  if (hijri != null) {
    print('${hijri.hy}/${hijri.hm}/${hijri.hd}'); // 1446/9/1
  }
}

Hijri to Gregorian

final greg = toGregorian(1446, 9, 1);
if (greg != null) {
  print(greg.toIso8601String().substring(0, 10)); // 2025-03-01
}

Both functions return null for dates outside the supported range.

Days in a Hijri Month

final days = daysInMonth(1446, 9); // Ramadan 1446
print(days); // 29 or 30

Validate a Hijri Date

final valid = isValid(1446, 9, 15);  // true
final bad   = isValid(1446, 13, 1);  // false (month 13 does not exist)

Supported Date Range

The Umm al-Qura engine covers 1318 AH (1900 CE) through 1500 AH (2077 CE). Dates outside this range return null. The FCNA engine uses a calculated formula with no hard date limit.