swedish-holidays-ts
Version:
Typescript library for calculating the date of all swedish holidays for any given year.
47 lines (46 loc) • 1.57 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.firstOfWeekdayAfterDate = exports.fixedDate = exports.getHolidayJSON = exports.addYears = exports.addWeeks = exports.addDays = void 0;
function addDays(dirtyDate, amount) {
const date = new Date(dirtyDate);
if (!amount) {
return date;
}
date.setDate(date.getDate() + amount);
return date;
}
exports.addDays = addDays;
function addWeeks(date, amount) {
const days = amount * 7;
return addDays(date, days);
}
exports.addWeeks = addWeeks;
function addYears(dirtyDate, amount) {
if (isNaN(amount)) {
return new Date(NaN);
}
const date = new Date(dirtyDate);
if (!amount) {
return date;
}
date.setFullYear(date.getFullYear() + amount);
return date;
}
exports.addYears = addYears;
const getHolidayJSON = (name, date, isPublicHoliday = false) => ({
name,
date,
day: date.getDate(),
month: date.getMonth() + 1,
year: date.getFullYear(),
isPublicHoliday,
});
exports.getHolidayJSON = getHolidayJSON;
const fixedDate = (year, month, day) => {
const m = month.toString().length > 1 ? month.toString() : "0" + month.toString();
const d = day.toString().length > 1 ? day.toString() : "0" + day.toString();
return new Date(year + "-" + m + "-" + d + "T00:00:00Z");
};
exports.fixedDate = fixedDate;
const firstOfWeekdayAfterDate = (weekday, date) => addDays(date, (date.getDay() > weekday ? 7 : 0) - date.getDay() + weekday);
exports.firstOfWeekdayAfterDate = firstOfWeekdayAfterDate;