UNPKG

@oxog/kairos

Version:

Revolutionary zero-dependency JavaScript date/time library with modular architecture and dynamic holiday system

254 lines 6.38 kB
import { CustomCalculatorUtils } from '../../holiday/calculators/custom.js'; export const holidays = [ { id: 'new-years-day', name: '元日', type: 'fixed', rule: { month: 1, day: 1 }, }, { id: 'coming-of-age-day', name: '成人の日', type: 'nth-weekday', rule: { month: 1, weekday: 1, nth: 2 }, }, { id: 'national-foundation-day', name: '建国記念の日', type: 'fixed', rule: { month: 2, day: 11 }, }, { id: 'emperors-birthday', name: '天皇誕生日', type: 'fixed', rule: { month: 2, day: 23 }, }, { id: 'vernal-equinox-day', name: '春分の日', type: 'custom', rule: { calculate: (year) => { return CustomCalculatorUtils.calculateVernalEquinox(year); }, }, }, { id: 'showa-day', name: '昭和の日', type: 'fixed', rule: { month: 4, day: 29 }, }, { id: 'constitution-day', name: '憲法記念日', type: 'fixed', rule: { month: 5, day: 3 }, }, { id: 'greenery-day', name: 'みどりの日', type: 'fixed', rule: { month: 5, day: 4 }, }, { id: 'childrens-day', name: 'こどもの日', type: 'fixed', rule: { month: 5, day: 5 }, }, { id: 'marine-day', name: '海の日', type: 'nth-weekday', rule: { month: 7, weekday: 1, nth: 3 }, }, { id: 'mountain-day', name: '山の日', type: 'fixed', rule: { month: 8, day: 11 }, }, { id: 'respect-for-aged-day', name: '敬老の日', type: 'nth-weekday', rule: { month: 9, weekday: 1, nth: 3 }, }, { id: 'autumnal-equinox-day', name: '秋分の日', type: 'custom', rule: { calculate: (year) => { return CustomCalculatorUtils.calculateAutumnalEquinox(year); }, }, }, { id: 'sports-day', name: 'スポーツの日', type: 'nth-weekday', rule: { month: 10, weekday: 1, nth: 2 }, }, { id: 'culture-day', name: '文化の日', type: 'fixed', rule: { month: 11, day: 3 }, }, { id: 'labor-thanksgiving-day', name: '勤労感謝の日', type: 'fixed', rule: { month: 11, day: 23 }, }, { id: 'golden-week-substitute', name: 'ゴールデンウィーク振替休日', type: 'custom', rule: { calculate: (year) => { return CustomCalculatorUtils.calculateGoldenWeekSubstitutes(year); }, }, }, ]; export const historicalHolidays = [ { id: 'emperors-birthday-showa', name: '天皇誕生日(昭和)', type: 'fixed', rule: { month: 4, day: 29 }, active: false, }, { id: 'emperors-birthday-heisei', name: '天皇誕生日(平成)', type: 'fixed', rule: { month: 12, day: 23 }, active: false, }, { id: 'health-sports-day', name: '体育の日', type: 'nth-weekday', rule: { month: 10, weekday: 1, nth: 2 }, active: false, }, { id: 'national-holiday', name: '国民の休日', type: 'fixed', rule: { month: 5, day: 4 }, active: false, }, ]; export const observances = [ { id: 'setsubun', name: '節分', type: 'fixed', rule: { month: 2, day: 3 }, }, { id: 'hinamatsuri', name: 'ひなまつり', type: 'fixed', rule: { month: 3, day: 3 }, }, { id: 'cherry-blossom-day', name: '桜の日', type: 'fixed', rule: { month: 3, day: 27 }, }, { id: 'mothers-day', name: '母の日', type: 'nth-weekday', rule: { month: 5, weekday: 0, nth: 2 }, }, { id: 'fathers-day', name: '父の日', type: 'nth-weekday', rule: { month: 6, weekday: 0, nth: 3 }, }, { id: 'tanabata', name: '七夕', type: 'fixed', rule: { month: 7, day: 7 }, }, { id: 'obon', name: 'お盆', type: 'fixed', rule: { month: 8, day: 15 }, duration: 3, }, { id: 'respect-for-elderly-day', name: '敬老の日', type: 'nth-weekday', rule: { month: 9, weekday: 1, nth: 3 }, }, { id: 'shichi-go-san', name: '七五三', type: 'fixed', rule: { month: 11, day: 15 }, }, { id: 'christmas', name: 'クリスマス', type: 'fixed', rule: { month: 12, day: 25 }, }, { id: 'new-years-eve', name: '大晦日', type: 'fixed', rule: { month: 12, day: 31 }, }, ]; export const goldenWeekHolidays = holidays.filter((h) => [ 'showa-day', 'constitution-day', 'greenery-day', 'childrens-day', 'golden-week-substitute', ].includes(h.id)); export const publicHolidays = holidays.filter((h) => h.id !== 'golden-week-substitute'); export const allHolidays = [...holidays, ...observances, ...historicalHolidays]; export const reiwaHolidays = holidays.filter((h) => h.id !== 'emperors-birthday-showa' && h.id !== 'emperors-birthday-heisei'); export const heiseiHolidays = [ ...holidays.filter((h) => h.id !== 'emperors-birthday'), ...historicalHolidays.filter((h) => h.id === 'emperors-birthday-heisei'), ]; export const olympics2020Holidays = [ { id: 'marine-day-2020', name: '海の日(2020年特別)', type: 'fixed', rule: { month: 7, day: 23 }, active: false, }, { id: 'sports-day-2020', name: 'スポーツの日(2020年特別)', type: 'fixed', rule: { month: 7, day: 24 }, active: false, }, { id: 'mountain-day-2020', name: '山の日(2020年特別)', type: 'fixed', rule: { month: 8, day: 10 }, active: false, }, ]; //# sourceMappingURL=holidays.js.map