für jeden Wochentag versuche ich das zugehörige Datum zu ermitteln, z.B::
weekdays = {"Montag": ["2021-01-04", "2021-02-01", "2021-03-01", ...], ..., "Mittwoch": ["2021-01-06", "2021-02-03", "2021-03-03", ...]}
Allerdings beginnt der Sonntag mit 0 und Montag mit 1, was dann in der Grafik nicht so schön aussieht (weil Sontag vor dem Montag steht und nimmand es entschlüsseln kann, dass mit 0 Sonntag gemeint ist). Der Sonntag sollte mit 7 und Montag mit 1 beginnen. Ich finde den Fehler hier nicht?
Code: Alles auswählen
heute = datetime.date.today()
the_time = pd.Timestamp(heute)
year = int(the_time.year - 1)
# Beginne ab dem ersten Januar
first_day = str(year) + "-01-01"
fist_weekday_date = datetime.datetime.strptime(first_day, '%Y-%m-%d')
last_day = str(year) + "-12-31"
last_week_date = datetime.datetime.strptime(last_day, '%Y-%m-%d')
next_weekday = fist_weekday_date
weekdays = {}
# Für den einzelnen Wochentag
for j in range(1,8):
dates_for_weekday = []
# ermittelt das Datum/alle Termine für den angegebenen Wochentag
while next_weekday < last_weekday_date:
dates_for_weekday.append(str(next_weekday.date()))
next_weekday = next_weekday + datetime.timedelta(weeks=1)
next_weekday = fist_weekday_date + datetime.timedelta(days=j)
# {Wochentag : [Datum_1, Datum_2, ... , Datum_N]}
# weekdays = {"Montag": ["2021-01-04", "2021-02-01", "2021-03-01"], "Mittwoch": ["2021-01-06", "2021-02-03", "2021-03-03"]}
weekdays[str(next_weekday.weekday())] = dates_for_weekday
print("######################################")
for x,y in weekdays.items():
print(str(x) + ":" + str(y))
print("######################################")