You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
137 lines
6.4 KiB
137 lines
6.4 KiB
from datetime import timedelta
|
|
from datetime import date
|
|
|
|
from umlauts import escape_german_umlauts
|
|
|
|
dates_color = {
|
|
"birthdays": "green!50!black",
|
|
"specialdays": "green!50!white",
|
|
"freedays": "red!50!white",
|
|
"holidays": "blue!50!green",
|
|
}
|
|
|
|
dates = {
|
|
"birthdays": [
|
|
{ "date": "13.01", "title": "Astrid Schönberger" },
|
|
{ "date": "23.01", "title": "David Geiser" },
|
|
{ "date": "27.09", "title": "Monika Voigt"},
|
|
{ "date": "05.10", "title": "Franziska Geiser"},
|
|
{ "date": "18.10", "title": "Theresa Schönberger" },
|
|
{ "date": "13.11", "title": "Winfried Voigt"},
|
|
{ "date": "14.11", "title": "Philipp Schönberer" },
|
|
{ "date": "18.12", "title": "Ursula Donn"},
|
|
{ "date": "12.05", "title": "Felix Maximilian Schönberger"},
|
|
],
|
|
"specialdays": [
|
|
{ "date": "05.10", "title": "Obermegaknutztag" },
|
|
{ "date": "10.05", "title": "Hochzeitstag" },
|
|
],
|
|
"holidays": [
|
|
{ "date-start": "23.12.2019", "date-end": "04.01.2020", "title": "Weihnachtsferien" },
|
|
#ferien 2020 bw
|
|
{ "date-start": "06.04.2020", "date-end": "18.04.2020", "title": "Osterferien" },
|
|
{ "date-start": "02.06.2020", "date-end": "13.06.2020", "title": "Pfingstferien"},
|
|
{ "date-start": "30.07.2020", "date-end": "12.09.2020", "title": "Sommerferien"},
|
|
{ "date-start": "26.10.2020", "date-end": "30.10.2020", "title": "Herbstferien"},
|
|
{ "date-start": "23.12.2020", "date-end": "09.01.2021", "title": "Weihnachtsferien"},
|
|
|
|
#ferien 2021 bw
|
|
{ "date-start": "06.04.2021", "date-end": "10.04.2021", "title": "Osterferien" },
|
|
{ "date-start": "25.05.2021", "date-end": "06.06.2021", "title": "Pfingstferien"},
|
|
{ "date-start": "29.07.2021", "date-end": "12.09.2021", "title": "Sommerferien"},
|
|
{ "date-start": "30.10.2021", "date-end": "07.11.2021", "title": "Herbstferien"},
|
|
{ "date-start": "23.12.2021", "date-end": "09.01.2022", "title": "Weihnachtsferien"},
|
|
|
|
#ferien 2022 bw
|
|
{ "date-start": "14.04.2022", "date-end": "23.04.2022", "title": "Osterferien" },
|
|
{ "date-start": "07.06.2022", "date-end": "18.06.2022", "title": "Pfingstferien"},
|
|
{ "date-start": "28.07.2022", "date-end": "10.09.2022", "title": "Sommerferien"},
|
|
{ "date-start": "31.10.2022", "date-end": "04.11.2022", "title": "Herbstferien"},
|
|
{ "date-start": "21.12.2022", "date-end": "07.01.2022", "title": "Weihnachtsferien"},
|
|
|
|
#ferien 2023 bw
|
|
{ "date-start": "06.04.2022", "date-end": "15.04.2022", "title": "Osterferien" },
|
|
{ "date-start": "30.05.2022", "date-end": "09.06.2022", "title": "Pfingstferien"},
|
|
{ "date-start": "27.07.2022", "date-end": "09.09.2022", "title": "Sommerferien"},
|
|
{ "date-start": "30.10.2022", "date-end": "03.11.2022", "title": "Herbstferien"},
|
|
{ "date-start": "23.12.2022", "date-end": "05.01.2022", "title": "Weihnachtsferien"},
|
|
],
|
|
"freedays": [
|
|
{ "date": "01.01", "title": "Neujahr" },
|
|
{ "date": "06.01", "title": "Heilige Drei Könige" },
|
|
{ "date": "01.05", "title": "Tag der Arbeit" },
|
|
{ "date": "03.10", "title": "Tag der Deutschen Einheit"},
|
|
{ "date": "01.11", "title": "Allerheiligen" },
|
|
{ "date": "24.12", "title": "Weihnachtten" },
|
|
{ "date": "25.12", "title": "1. Weihnachtsfeiertag" },
|
|
{ "date": "26.12", "title": "2. Weihnachtsfeiertag" },
|
|
{ "date": "31.12", "title": "Silvester" },
|
|
|
|
#free 2021 bw
|
|
{ "date": "02.04.2021", "title": "Karfreitag" },
|
|
{ "date": "05.04.2021", "title": "Ostermontag" },
|
|
{ "date": "13.05.2021", "title": "Christi Himmelfahrt" },
|
|
{ "date": "24.05.2021", "title": "Pfingstmontag" },
|
|
{ "date": "03.06.2021", "title": "Fronleichnam" },
|
|
|
|
#free 2022 bw
|
|
{ "date": "15.04.2022", "title": "Karfreitag" },
|
|
{ "date": "18.04.2022", "title": "Ostermontag" },
|
|
{ "date": "26.05.2022", "title": "Christi Himmelfahrt" },
|
|
{ "date": "06.06.2022", "title": "Pfingstmontag" },
|
|
{ "date": "16.06.2022", "title": "Fronleichnam" },
|
|
|
|
#free 2023 bw
|
|
{ "date": "07.04.2022", "title": "Karfreitag" },
|
|
{ "date": "10.04.2022", "title": "Ostermontag" },
|
|
{ "date": "18.05.2022", "title": "Christi Himmelfahrt" },
|
|
{ "date": "29.05.2022", "title": "Pfingstmontag" },
|
|
{ "date": "08.06.2022", "title": "Fronleichnam" },
|
|
],
|
|
}
|
|
|
|
def get_special_text(date_to_check, divider):
|
|
return_str =""
|
|
for b in dates:
|
|
print(b)
|
|
for d in dates[b]:
|
|
if "date" in d:
|
|
start_day = d["date"].split(".")
|
|
if len(start_day)<3:
|
|
s_year = date_to_check.year
|
|
else:
|
|
s_year = int(start_day[2])
|
|
s_month = int(start_day[1])
|
|
s_day = int(start_day[0])
|
|
start_day = date(s_year, s_month, s_day)
|
|
if (start_day == date_to_check):
|
|
if return_str != "":
|
|
return_str += divider
|
|
return_str += "\\textcolor{"+dates_color[b]+"}{" + d["title"] + "}"
|
|
|
|
|
|
if "date-start" in d and "date-end" in d:
|
|
start_day = d["date-start"].split(".")
|
|
if len(start_day)<3:
|
|
s_year = date_to_check.year
|
|
else:
|
|
s_year = int(start_day[2])
|
|
s_month = int(start_day[1])
|
|
s_day = int(start_day[0])
|
|
start_day = date(s_year, s_month, s_day)
|
|
|
|
end_day = d["date-end"].split(".")
|
|
if len(end_day)<3:
|
|
e_year = date_to_check.year
|
|
else:
|
|
e_year = int(end_day[2])
|
|
e_month = int(end_day[1])
|
|
e_day = int(end_day[0])
|
|
end_day = date(e_year, e_month, e_day)
|
|
|
|
if date_to_check >= start_day and date_to_check <= end_day:
|
|
if return_str != "":
|
|
return_str += divider
|
|
return_str += "\\textcolor{"+dates_color[b]+"}{" + d["title"] + "}"
|
|
return_str = escape_german_umlauts(return_str)
|
|
return return_str
|