Skip to content
šŸŽ„ Christmas Advent Calendar 2025 — Ontdek dagelijks test-tips en verrassingen! Bekijk de kalender

JavaScript check if date is weekend or public holiday

13-06-2022 Roy de Kleijn

Sometimes it is required to check if a certain date is a public holiday or day in the weekend.

If it is the case then you might be interested in adding enough days to make sure the date is a "normal" working day.

We can use the following JavaScript snippet to perform such check.

Utility class (file saved as DateUtil.js):

const holidays = {
  "0,1": "public holiday 1",
  "3,15": "public holiday 2",
  "3,17": "public holiday 3",
  "3,18": "public holiday 4",
  "6,13": "public holiday 5",
  "6,14": "public holiday 6",
  "6,15": "public holiday 7",
};

class DateUtil {

  static #isWeekend(date) {
    const dayOfWeek = date.getDay();
    return (dayOfWeek === 6) || (dayOfWeek === 0);
  }

  static #isPublicHoliday(date) {
    return !!holidays[date.getMonth() + ',' + date.getDate()];
  }

  static isWeekendOrPublicHoliday(date) {
    return this.#isPublicHoliday(date) || this.#isWeekend(date);
  }
}

module.exports = {DateUtil}

Using the utility class (file saved as is-weekend-or-public-holiday.js):

const {DateUtil} = require('./DateUtil')

let date = new Date();
date.setDate(date.getDate() + 30);

console.log(`${date} is weekend or public holiday: ${DateUtil.isWeekendOrPublicHoliday(date)}`)

while (DateUtil.isWeekendOrPublicHoliday(date)) {
  date.setDate(date.getDate() + 1);
}

console.log(`${date} is weekend or public holiday: ${DateUtil.isWeekendOrPublicHoliday(date)}`)

Example output (run code with: node path/to/is-weekend-or-public-holiday.js):

Wed Jul 13 2022 16:17:09 GMT+0200 (Central European Summer Time) is weekend or public holiday: true
Mon Jul 18 2022 16:17:09 GMT+0200 (Central European Summer Time) is weekend or public holiday: false

You only need to define the set of public holidays that applies to your country.

Delen:
Roy de Kleijn

Test Automation Expert

Met meer dan 15 jaar ervaring in software testing en test automation helpt Roy teams om hun testprocessen te verbeteren.

Wil je meer leren?

Bekijk onze trainingen en breng je test automation skills naar het volgende niveau.