var int year = now.getYear //var int month =now.getMonth 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 = (19 * a + b - d - g + 15) % 30 var int i = c / 4 var int k = c % 4 var int L = (32 + 2 * e + 2 * i - h - k) % 7 var int m = (a + 11 * h + 22 * L) / 451 var int month = (h + L - 7 * m + 114) / 31 var int day = ((h + L - 7 * m + 114) % 31) + 1 var easterSunday = ZonedDateTime.parse(year+"-"+month+"-"+day).toLocalDate() //var org.joda.time.DateTime easterSunday = parse(year+"-"+month+"-"+day) //val easterSunday.format(DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm") var int dayOfYear = now.getDayOfYear logInfo("Holiday-Script", "Heute ist Tag " + dayOfYear + " von "+ year) logInfo("Holiday-Script", "Ostersonntag ist: "+ easterSunday) // Feiertag var boolean holiday = false var String holidayName = null // bundesweiter Feiertag if (dayOfYear == parse(year+"-01-01").getDayOfYear) { holidayName = "new_years_day" // Neujahr holiday = true } // bundesweiter Feiertag else if (dayOfYear == easterSunday.getDayOfYear-2) { holidayName = "good_friday" // Karfreitag holiday = true } // Brandenburg else if (dayOfYear == easterSunday.getDayOfYear) { holidayName = "easter_sunday" // Ostersonntag holiday = false } // bundesweiter Feiertag else if (dayOfYear==easterSunday.getDayOfYear +1) { holidayName = "easter_monday" // Ostermontag holiday = true } // bundesweiter Feiertag else if (dayOfYear==parse(year+"-05-01").getDayOfYear) { holidayName = "1st_may"// Tag der Arbeit holiday = true } // bundesweiter Feiertag else if (dayOfYear==easterSunday.getDayOfYear +39) { holidayName = "ascension_day" // Christi Himmelfahrt holiday = true } // Brandenburg else if (dayOfYear==easterSunday.getDayOfYear +49) { holidayName = "whit_sunday" // Pfingstsonntag holiday = false } // bundesweiter Feiertag else if (dayOfYear==easterSunday.getDayOfYear +50) { holidayName = "whit_monday" // Pfingstmontag holiday = true } // Baden-Württemberg, Bayern, Hessen, NRW, Rheinland-Pfalz, Saarland sowie regional in Sachsen, Thüringen else if (dayOfYear==easterSunday.getDayOfYear+60) { holidayName = "corpus_christi" // Frohnleichnahm holiday = true } // bundesweiter Feiertag else if (dayOfYear==parse(year+"-10-03").getDayOfYear) { holidayName = "reunification" // Tag der deutschen Einheit holiday = true } // kann auch der 4te Advent sein else if (dayOfYear==parse(year+"-12-24").getDayOfYear) { holidayName = "christmas_eve" // Heiligabend holiday = false } // bundesweiter Feiertag else if (dayOfYear==parse(year+"-12-25").getDayOfYear) { holidayName = "1st_christmas_day" // 1. Weihnachtstag holiday = true } // bundesweiter Feiertag else if (dayOfYear==parse(year+"-12-26").getDayOfYear) { holidayName = "2nd_christmas_day" // 2. Weihnachtstag holiday = true } // Silvester else if (dayOfYear==parse(year+"-12-31").getDayOfYear) { holidayName = "new_years_eve" // Silvester holiday = false } else { holidayName = "no_holiday" // Kein Feiertag holiday = false } // Name Feiertag setzen if (holidayName!==null) { logInfo("Holiday-Script", "Feiertag: "+holidayName) postUpdate(SpecialDay,holidayName) } else { //postUpdate(SpecialDay,"no_holiday") postUpdate(SpecialDay,holidayName) } // Schalter Feiertag setzen if (holiday) { logInfo("Holiday-Script", "Heute ist EIN Feiertag!") postUpdate(Holiday,ON) } else { logInfo("Holiday-Script", "Heute ist KEIN Feiertag!") postUpdate(Holiday,OFF) }