Remove crashing holiday (#11988)

This commit is contained in:
Yair Morgenstern 2024-07-18 22:25:49 +03:00 committed by GitHub
parent d1f39131a6
commit ca4c479719
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -55,16 +55,16 @@ object HolidayDates {
override fun getByYear(year: Int) =
DateRange.of(LocalDate.of(year, 11, 30).closestWeekday(DayOfWeek.SUNDAY))
},
Qingming {
// https://en.wikipedia.org/wiki/Qingming_Festival
// "it falls on the first day of the fifth solar term (also called Qingming) of the traditional Chinese lunisolar calendar.
// This makes it the 15th day after the Spring Equinox, either 4, 5 or 6 April in a given year"
override fun getByYear(year: Int): DateRange {
val springEquinoxInstant = Tables.equinoxes[year] ?: return DateRange.never
val springEquinox = LocalDate.ofInstant(springEquinoxInstant, ZoneId.systemDefault())
return DateRange.of(springEquinox.plusDays(15L))
}
},
// Qingming {
// // https://en.wikipedia.org/wiki/Qingming_Festival
// // "it falls on the first day of the fifth solar term (also called Qingming) of the traditional Chinese lunisolar calendar.
// // This makes it the 15th day after the Spring Equinox, either 4, 5 or 6 April in a given year"
// override fun getByYear(year: Int): DateRange {
// val springEquinoxInstant = Tables.equinoxes[year] ?: return DateRange.never
// val springEquinox = LocalDate.ofInstant(springEquinoxInstant, ZoneId.systemDefault())
// return DateRange.of(springEquinox.plusDays(15L))
// }
// },
Diwali(0.2f) {
// https://en.wikipedia.org/wiki/Diwali#Dates
// Darkest new moon night between mid-october and mid-november, then add +/- two days for a 5-day festival...
@ -125,7 +125,7 @@ object HolidayDates {
abstract fun getByYear(year: Int): DateRange
companion object {
fun safeValueOf(name: String) = values().firstOrNull { it.name == name }
fun safeValueOf(name: String) = entries.firstOrNull { it.name == name }
}
}
@ -155,7 +155,7 @@ object HolidayDates {
fun getHolidayByDate(date: LocalDate = LocalDate.now()): Holidays? {
return System.getProperty("easterEgg")?.let {
Holidays.safeValueOf(it)
} ?: Holidays.values().firstOrNull {
} ?: Holidays.entries.firstOrNull {
val range = it.getByYear(date.year)
date in range && Random.nextFloat() <= it.chance
}