/* * Calculate the Easter Sunday using formula * developed by C. F. Gauss Anno 1800 */ // Get the current year var int year = now.getYear var int a = year % 19 var int b = year / 100 var int c = year % 100 var int d = b / 4 var int e = b % 4 var int f = (b+8) / 25 var int g = (b-f+1)/3 var int h = ((a*19)+b+15-d-g) % 30 var int i = c / 4 var int j = c % 4 var int k = ((e+i)*2 + 32 - h - j) % 7 var int l = ((k*2+h) * 11 + a) / 451 var int m = ((h+k+114)-(l*7)) / 31 var int n = ((h+k+114)-(l*7)) % 31 var int month = m var int day = n + 1 var org.joda.time.DateTime easterSunday = parse(year+"-"+month+"-"+day) var int dayOfYear = now.getDayOfYear //logInfo("Holiday.script", "Easter Sunday: " + easterSunday) //logInfo("Holiday.script", "Day of the year: "+dayOfYear) // New years day if (dayOfYear == parse(year+"-01-01").getDayOfYear) { Zeit_Feiertag.postUpdate(ON) Zeit_Tag_Name.postUpdate("new_years_day") } // holy trinity else if (dayOfYear == parse(year+"-01-06").getDayOfYear) { Zeit_Feiertag.postUpdate(ON) Zeit_Tag_Name.postUpdate("holy_trinity") } // carnival else if (dayOfYear == easterSunday.getDayOfYear -48) { Zeit_Feiertag.postUpdate(OFF) Zeit_Tag_Name.postUpdate("carnival") } // good friday else if (dayOfYear == easterSunday.getDayOfYear -2) { Zeit_Feiertag.postUpdate(ON) Zeit_Tag_Name.postUpdate("good_friday") } // Easter Sunday else if (dayOfYear == easterSunday.getDayOfYear) { Zeit_Feiertag.postUpdate(ON) Zeit_Tag_Name.postUpdate("easter_sunday") } // Easter Monday else if (dayOfYear == easterSunday.getDayOfYear +1) { Zeit_Feiertag.postUpdate(ON) Zeit_Tag_Name.postUpdate("easter_monday") } // Ascension Day else if (dayOfYear == easterSunday.getDayOfYear +39) { Zeit_Feiertag.postUpdate(ON) Zeit_Tag_Name.postUpdate("ascension_day") } // Whit sunday else if (dayOfYear == easterSunday.getDayOfYear +49) { Zeit_Feiertag.postUpdate(ON) Zeit_Tag_Name.postUpdate("whit_sunday") } // Whit monday else if (dayOfYear == easterSunday.getDayOfYear +50) { Zeit_Feiertag.postUpdate(ON) Zeit_Tag_Name.postUpdate("whit_monday") } // Corpus Christi else if (dayOfYear == easterSunday.getDayOfYear +60) { Zeit_Feiertag.postUpdate(ON) Zeit_Tag_Name.postUpdate("corpus_christi") } // labor day else if (dayOfYear == parse(year+"-05-01").getDayOfYear) { Zeit_Feiertag.postUpdate(ON) Zeit_Tag_Name.postUpdate("labor_day") } // assumption day else if (dayOfYear == parse(year+"-08-15").getDayOfYear) { Zeit_Feiertag.postUpdate(OFF) Zeit_Tag_Name.postUpdate("assumption_day") } // reunification else if (dayOfYear == parse(year+"-10-03").getDayOfYear) { Zeit_Feiertag.postUpdate(ON) Zeit_Tag_Name.postUpdate("reunification") } // reformation day else if (dayOfYear == parse(year+"-10-31").getDayOfYear) { Zeit_Feiertag.postUpdate(OFF) Zeit_Tag_Name.postUpdate("reformation_day") } // all saints else if (dayOfYear == parse(year+"-11-01").getDayOfYear) { Zeit_Feiertag.postUpdate(ON) Zeit_Tag_Name.postUpdate("all_saints") } // christmas eve else if (dayOfYear == parse(year+"-12-24").getDayOfYear) { Zeit_Feiertag.postUpdate(OFF) Zeit_Tag_Name.postUpdate("christmas_eve") } // 1st christmas day else if (dayOfYear == parse(year+"-12-25").getDayOfYear) { Zeit_Feiertag.postUpdate(ON) Zeit_Tag_Name.postUpdate("first_christmas_day") } // 2nd christmas day else if (dayOfYear == parse(year+"-12-26").getDayOfYear) { Zeit_Feiertag.postUpdate(ON) Zeit_Tag_Name.postUpdate("second_christmas_day") } // new years eve else if (dayOfYear == parse(year+"-12-31").getDayOfYear) { Zeit_Feiertag.postUpdate(ON) Zeit_Tag_Name.postUpdate("new_years_eve") } else { Zeit_Feiertag.postUpdate(OFF) Zeit_Tag_Name.postUpdate("") }