java.lang.Object
org.holiday.calendar.observance.AbstractObservance
org.holiday.calendar.observance.islamic.mena.EidAlAdha
All Implemented Interfaces:
Function<Integer,LocalDate>, Predicate<Integer>, Observance

public class EidAlAdha extends AbstractObservance
Observance of Eid al-Adha, the Feast of Sacrifice (10 Dhu al-Hijjah AH).

Dates are determined by official moon sighting and cannot be computed algorithmically. Dates for 2024–2026 are sourced from official UAE Securities and Commodities Authority (SCA) and Saudi Exchange (Tadawul) holiday announcements. Dates for 2027–2055 are projected from the Umm al-Qura tabular Islamic calendar; verify against official announcements as each year is published.

For Turkey (tr), 2024–2035 are official Diyanet (Presidency of Religious Affairs) published dates rather than Umm al-Qura projections — Diyanet publishes several years ahead of the current year. See eid-al-adha-tr.csv for the confirmed 2026 divergence between Diyanet's ilmi takvim and Umm al-Qura.

Date data is loaded at runtime from eid-al-adha-{countryCode}.csv in this package, where countryCode is the ISO 3166-1 alpha-2 country code in lower case (e.g. ae, sa).

Author:
Dave Joyce
  • Constructor Details

    • EidAlAdha

      public EidAlAdha(String countryCode)
  • Method Details

    • computeDate

      protected LocalDate computeDate(int year)
      Description copied from class: AbstractObservance
      Compute the date for this observance in the given year. Only called when AbstractObservance.isValidYear(int) returns true.
      Specified by:
      computeDate in class AbstractObservance
      Parameters:
      year - the year for which to compute the date
      Returns:
      computed holiday date
    • isValidYear

      protected boolean isValidYear(int year)
      Description copied from class: AbstractObservance
      Determine whether this observance applies in the given year. Defaults to true (all years are valid).
      Overrides:
      isValidYear in class AbstractObservance
      Parameters:
      year - the year to test
      Returns:
      true if this observance applies