# Kenya Holidays

A simple npm package to get all Kenyan public holidays for a given year.

## Installation

```bash
npm install kenya-holidays
```

## Usage

### Basic Usage

```javascript
const { getKenyanHolidays } = require('kenya-holidays');

// Get holidays for the current year
const holidays = getKenyanHolidays();
console.log(holidays);

// Get holidays for a specific year
const holidays2024 = getKenyanHolidays(2024);
console.log(holidays2024);

// Get formatted dates (YYYY-MM-DD)
const formattedHolidays = getKenyanHolidays(null, true);
console.log(formattedHolidays);
```

### Detailed Holiday Information

```javascript
const { getDetailedKenyanHolidays } = require('kenya-holidays');

// Get detailed holiday information for the current year
const detailedHolidays = getDetailedKenyanHolidays();
console.log(detailedHolidays);

// Example output:
// [
//   {
//     name: "New Year's Day",
//     date: "2025-01-01",
//     type: "National",
//     description: "Celebrates the start of the new year",
//     isVariable: false
//   },
//   ...
// ]
```

### Check if a Date is a Holiday

```javascript
const { isKenyanHoliday } = require('kenya-holidays');

// Check if a specific date is a holiday
const holiday = isKenyanHoliday('2025-12-25');
if (holiday) {
  console.log(`${holiday.date} is ${holiday.name} (${holiday.type})`);
  console.log(`Description: ${holiday.description}`);
} else {
  console.log('Not a holiday');
}

// You can also pass a Date object
const dateObj = new Date(2025, 11, 25); // December 25, 2025
const christmasHoliday = isKenyanHoliday(dateObj);
console.log(christmasHoliday); // Returns holiday info
```

## Features

- Get all Kenyan public holidays for any year (past, present, or future)
- Accurately calculates Easter-based holidays (Good Friday, Easter Monday) for any year
- Option to get dates in JavaScript Date objects or formatted strings
- Notes for variable Islamic holidays (Eid al-Fitr, Eid al-Adha)
- Detailed holiday information including type and description
- Flexible API with both simple and detailed output formats

## Holiday List

The package includes the following Kenyan public holidays:

1. New Year's Day - January 1
2. Good Friday - Variable date (calculated)
3. Easter Monday - Variable date (calculated)
4. Labour Day - May 1
5. Madaraka Day - June 1
6. Huduma Day - October 10
7. Mashujaa Day - October 20
8. Jamhuri Day - December 12
9. Christmas Day - December 25
10. Boxing Day - December 26
11. Utamaduni Day - December 27
12. Eid al-Fitr* - Variable date (Islamic calendar)
13. Eid al-Adha* - Variable date (Islamic calendar)
14. Diwali* - Variable date (sometimes declared a public holiday)

*Note: Islamic holidays depend on the lunar calendar and may vary. The package provides a note for these dates rather than calculating them.

## License

MIT