Hilfe bei der richtigen Codierung

Code-Stücke können hier veröffentlicht werden.
Antworten
charlottel02
User
Beiträge: 2
Registriert: Samstag 30. Oktober 2021, 13:08

Heii :)
Ich bin gerade dabei ein Programm zu schreiben, welches mir einen Kalender mit Schaltjahren ausgibt.
Ich hab bereits alle Funktionen definiert also
- dass es mir true und false ausgeben soll, wenns ein Schaltjahr ist
- wieviele Tage die einzelnen Monate haben
- dass wenn man ein Datum eingibt berechnet wird welcher Wochentag ist(Bsp. days_of_the_week(20.10.2021)=6 also Samstag)
-Monatsnamen

Jetzt würd ich das gern in einer Kalenderfunktion calendar(year) zusammenfügen.
Hier bin ich auf das Problem gestoßen, dass ich nicht ganz weiß, wie ich es schaffe, dass der Monat immer mit dem richtigen Tag beginnt und das auch dann fortlaufend (mit Zeilenumbruch) unter den richtigen Wochentag geschrieben wird ...
Hier mal der Code, den ich bis jetzt habe und wie zum Beispiel September eines Jahres jetzt aussieht - jetzt schreibt er mir einfach unter jeden Monat, mit den Wochentagen einen String von 1 bis Anzahl Wochentagen...
Vielleicht ist jemand so nett und kann mir helfen!
Danke!!

def calendar(year):
for month in range (1,13):
print(name_of_month(month).center(75))
print('Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday')
for day in range(1, monthly_days(year, month)+1):
t =(days_of_the_week(day,month,year) * "" + str(day))
print(t, end="")

print()

September
Monday Tuesday Wednesday Thursday Friday Saturday Sunday
123456789101112131415161718192021222324252627282930
Sirius3
User
Beiträge: 17738
Registriert: Sonntag 21. Oktober 2012, 17:20

Du darfst nicht die Tage in der for-Schleife durchgehen, sondern brauchst eine Schleife über die Wochen.
Sirius3
User
Beiträge: 17738
Registriert: Sonntag 21. Oktober 2012, 17:20

Du willst immer 7 Tage in einer Zeile haben, wobei die erste und letzte Zeile Leerstellen haben können. Als erstes brauchst du den Wochentag des 1. des Monats. Dann weißt Du, wie viele Leerstellen Du ausgeben musst und auch welches Datum der erste Montag des Monats hat.
charlottel02
User
Beiträge: 2
Registriert: Samstag 30. Oktober 2021, 13:08

Sirius3 hat geschrieben: Sonntag 31. Oktober 2021, 08:30 Du willst immer 7 Tage in einer Zeile haben, wobei die erste und letzte Zeile Leerstellen haben können. Als erstes brauchst du den Wochentag des 1. des Monats. Dann weißt Du, wie viele Leerstellen Du ausgeben musst und auch welches Datum der erste Montag des Monats hat.
Okay ich hab die Funktion für den ersten Wochentag des Monats jetzt generiert - aber wie schaffe ich es, dass es das kontinuierlich für jedes Jahr immer dann ausgibt?
Antworten