处理不同国家的javascript日历上的假期

时间:2016-08-22 13:58:14

标签: javascript node.js calendar sapui5

我有一个可能取决于位置的应用程序,我需要一个工作流程来处理繁忙的日历日。例如,在德国,我的假期与韩国不同。

是否有可能(例如JavaScript库)自动化它?

目前我只在德国使用它,但我需要更多国家(例如韩国):

easter: {
    '2015': {year: 2015, month: 3, day: 5},
    '2016': {year: 2016, month: 2, day: 27},
    '2017': {year: 2017, month: 3, day: 16},
    '2018': {year: 2018, month: 3, day: 1},
    '2019': {year: 2019, month: 3, day: 21},
    '2020': {year: 2020, month: 3, day: 12},
    '2021': {year: 2021, month: 3, day: 4},
    '2022': {year: 2022, month: 3, day: 17},
    '2023': {year: 2023, month: 3, day: 9},
    '2024': {year: 2024, month: 2, day: 31},
    '2025': {year: 2025, month: 3, day: 20}
},

getHolidays: function () {
    var year = moment().year();
    var nextYear = year + 1;
    var staticHolidays = this.getStaticHolidays(year);
    var variableHolidays = this.getVariableHolidays(this.getEasterMoment(year));
    var staticHolidaysNextYear = this.getStaticHolidays(nextYear);
    var variableHolidaysNextYear = this.getVariableHolidays(this.getEasterMoment(nextYear));
    return staticHolidays.concat(variableHolidays, staticHolidaysNextYear, variableHolidaysNextYear);
},

getEasterMoment: function (year) {
    return moment(this.easter[year]);
},

getStaticHolidays: function (year) {
    var staticHolidays = [];
    staticHolidays.push(moment({year: year, month: 0, day: 1})); // Neujahr / New Year's Day
    staticHolidays.push(moment({year: year, month: 0, day: 6})); // Hl. Drei Könige / Epiphany
    staticHolidays.push(moment({year: year, month: 4, day: 1})); // Tag d. Arbeit / Labor Day
    staticHolidays.push(moment({year: year, month: 9, day: 3})); // Tag d. dt. Einheit / German Unity Day
    staticHolidays.push(moment({year: year, month: 10, day: 1})); // Allerheiligen / All Saints
    staticHolidays.push(moment({year: year, month: 11, day: 24})); // Hl. Abend / Cheistmas Eve
    staticHolidays.push(moment({year: year, month: 11, day: 25})); // 1. Weihnachtstag / Christmas Day
    staticHolidays.push(moment({year: year, month: 11, day: 26})); // 2. Weihnachtstag / Boxing Day
    staticHolidays.push(moment({year: year, month: 11, day: 31})); // Silvester / Ney Year's Eve
    return staticHolidays;
},

getVariableHolidays: function (easterMoment) {
    var variableHolidays = [];
    variableHolidays.push(easterMoment.clone().subtract(2, 'days')); // Karfreitag / Good Friday
    variableHolidays.push(easterMoment.clone().add(1, 'days')); // Ostetmontag / Easter Monday
    variableHolidays.push(easterMoment.clone().add(39, 'days')); // Christi Himmelfahrt / Ascension Day
    variableHolidays.push(easterMoment.clone().add(50, 'days')); // Pfingstmontag / Whit Monday
    variableHolidays.push(easterMoment.clone().add(60, 'days')); // Fronleichnam / Corpus Christi
    return variableHolidays;
}

P.S。在韩国,我们没有复活节。

0 个答案:

没有答案
相关问题