🐰
Algorithms to calculate the date of Easter Sunday: namespace Timely\Easter, Java package timely.easter.
## [Calculator.java](https://github.com/hermajan/time/blob/master/src/timely/easter/Calculator.java)
1. **Butcher's Algorithm (`easterSundayButcher`)**
- Calculates Easter Sunday in the **Gregorian calendar** using Butcher's explicit formula.
- Input: `int year`
- Output: `int[]` in format `[day, month, year]`
2. **Oudin's Algorithm (`easterSundayOudin`)**
- Alternative astronomical/mathematical method for calculating Easter Sunday in the **Gregorian calendar**.
- Input: `int year`
- Output: `int[]` in format `[day, month, year]`
3. **Meeus's Algorithm (`easterSundayMeeus`)**
- Calculates Easter Sunday in the **Julian calendar**.
- Input: `int year`
- Output: `int[]` in format `[day, month, year]`
## [Calculator.php](https://github.com/hermajan/time/blob/master/src/timely/easter/Calculator.php)
- `Calculator::sunday(?int $year)`: Returns Easter Sunday as a `DateTime`. Uses `easter_days()` when the `calendar` extension is installed, otherwise Butcher's algorithm.
- `Calculator::friday(?int $year)` and `Calculator::monday(?int $year)`: Good Friday and Easter Monday.
- `Calculator::sundayButcher(int $year)`: Butcher's algorithm ported to PHP.
```php
use Timely\Easter\Calculator;
Calculator::sunday(2026)->format("j.n.Y"); // "5.4.2026"
```
## [Calculator.js](https://github.com/hermajan/time/blob/master/src/timely/easter/Calculator.js)
JavaScript class `Timely.Calculator` with `sundayOudin(year)`, `friday(year)` and `monday(year)`, each returning a `Converter`; see [JavaScript](JavaScript.md).
Try it in the [Examples](Examples.md) (`examples/easter.html`). The [Holidays](Holidays.md) use `EasterCalculator` for holidays relative to Easter.