java gradle package for kenat (Best ethiopic date/calendar library of all time)
# Kenat Java
A modern **Java 21** library for Ethiopian calendar (Ge'ez / Ethiopic) arithmetic, formatting, holiday and fasting calculations.
> This is an independent Java rewrite of the original **Kenat** TypeScript library by Melaku Demeke, built from scratch using idiomatic Java β not a line-by-line translation.
---
## Features
- π **Ethiopian β Gregorian conversion** β accurate multi-century date math
- π
**Month & year grid generation** β 7-column calendar grid with holidays and padding
- π° **Ethiopian time** β 12-hour Ethiopian clock β 24h Gregorian; add/subtract/diff
- π’ **Ge'ez numerals** β integers β Ethiopic script (supports 0β99,999,999)
- π **Localized output** β Amharic and English month/weekday names
- π **Holiday lookup** β fixed, movable Christian, and Islamic holidays
- π **Orthodox commemorations** β the monthly saints/nigs calendar, overlaid on the month grid
- π **Fasting periods** β Abiy Tsome, Tsome Hawaryat, Nineveh, Tsome Nebiyat, Filseta, Ramadan, Tsome Dihenet
- π **Date arithmetic** β add/subtract days/months/years; full diff breakdown
- π **Distance helpers** β human-readable "how far to Fasika?" breakdowns in Amharic or English
- β
**Bahire Hasab** β complete movable feast algorithm (Enkutatash, Timkat, Easter, Pentecost, etc.)
- π§© **Clean API** β Java 21 records, `java.time` integration, immutable types, no external dependencies
This release tracks the reference TypeScript library `kenat` v4.x
feature-for-feature. See Parity with the TypeScript library
for the handful of places where the two deliberately differ.
---
## Installation
Available on Maven Central as `io.github.henaorth16:kenat:1.1.0`. Requires **Java 21+**.
### Gradle (Kotlin DSL)
```kotlin
repositories {
mavenCentral()
}
dependencies {
implementation("io.github.henaorth16:kenat:1.1.0")
}
```
### Gradle (Groovy DSL)
```groovy
dependencies {
implementation 'io.github.henaorth16:kenat:1.1.0'
}
```
### Maven
```xml
io.github.henaorth16
kenat
1.1.0
```
### β¦