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

public class HariRayaPuasa extends AbstractObservance
Observance of Hari Raya Puasa (Eid al-Fitr), marking the end of Ramadan. In Singapore, the observed date is officially gazetted by the government and follows the local lunar sighting, which may differ from tabular Islamic calendar calculations.

Dates for 2019–2030 are sourced from official Singapore Ministry of Manpower (MOM) public holiday gazette notifications and MUIS (Majlis Ugama Islam Singapura) announcements. Dates for 2031–2055 are projected from the Umm al-Qura tabular Islamic calendar (1 Shawwal AH, adjusted to SGT via Singapore's Imkan ar-Rukyah +1-day offset); verify against MUIS/MOM gazette announcements at https://data.gov.sg/collections/691/view as each year is officially published.

Note: Gregorian year 2033 contains two Eid al-Fitr occurrences (~January 4 and ~December 24). This map records only the first (January) occurrence; the December occurrence cannot be represented under the single-date-per-year-key design.

Author:
Dave Joyce
  • Constructor Details

    • HariRayaPuasa

      public HariRayaPuasa()
  • 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