Seite 1 von 1

Python Kalender programmieren

Verfasst: Sonntag 23. Dezember 2018, 11:22
von pythonnoobie
Hallo zusammen, ich muss für das Studium über Weihnachten einen Kalender programmieren.
Wir haben leider keine wirkliche Vorlesung dazu und das ist so der erste Kontakt mit dem Programmieren, den ich habe, ich bin also recht grottig darin ;D
Die gleiche Aufgabe wurde letztes Jahr schonmal hier gefragt, allerdings kam es zu keiner Lösung des Problems: viewtopic.php?f=11&t=39638
Ich würde mich sehr freuen, wenn mir jemand die Frage des Kollegen beantworten könnte.
Gruß noobie

Re: Python Kalender programmieren

Verfasst: Sonntag 23. Dezember 2018, 20:54
von __blackjack__
@pythonnoobie: Da gab es doch Antworten, die den Fragesteller auch hätten weiterbringen müssen. Oder meinst Du mit Lösung, dass Dir das jemand komplett fertig serviert? Da lernst Du dann doch nichts bei, ausser das anscheinend andere Leute Deine Hausaufgaben für Dich lösen. Sicher nicht der Sinn von Hausaufgaben. ;-)

Wobei da ja sogar das Herzstück der Lösung als QBasic-Quelltext vorliegt. Leider mit der alten Codebox, und damit etwas unformatiert und ohne Syntaxhervorhebung. Also hier noch mal (mit einem zusätzlichen Kommentar):

Code: Alles auswählen

SUB Calendar(year AS INTEGER)
  DIM month AS INTEGER, day AS INTEGER, firstWeekDay AS INTEGER
  kw%=0
  FOR month=1 TO 12
    m$=MonthName(month)
    PRINT SPACE$(11-(LEN(m$)+5)\2);m$;year
    PRINT "KW So Mo Di Mi Do Fr Sa"
    firstWeekDay=WeekDay(year,month,1)
    IF firstWeekDay=0 THEN kw%=kw%+1
    PRINT USING "##&";kw%;SPACE$(firstWeekDay*3);
    FOR day=1 TO DaysInMonth(year,month)
      ' Diese Bedingung ist noch nicht ganz vollständig,
      ' da fehlt noch ein Sonderfall.
      IF day<>1 AND (firstWeekDay+day-1) MOD 7=0 THEN
        kw%=kw%+1
        PRINT:PRINT USING "##";kw%;
      END IF
      PRINT USING "###";day;
    NEXT
    PRINT:PRINT
  NEXT
END SUB
Was hast Du denn schon und wo liegen die konkreten Probleme?

Re: Python Kalender programmieren

Verfasst: Donnerstag 27. Dezember 2018, 14:01
von DeaD_EyE
In Python gibt es bereits ein Modul für Kalender:

Code: Alles auswählen

import calender


cal = calendar.LocaleTextCalendar(2018)
cal.pryear(2018)
Ich gehe von aus, dass du alle Funktionen selbst programmieren sollst, ansonsten wärst du jetzt mit der Arbeit fertig.


Berechnung von Wochentagen: https://www.youtube.com/watch?v=WMZsZBNCpEY
Ich bin nicht zu 100% sicher, ob in dem Video auch Beispiele in Python vorkommen.
Jedenfalls wird dort die Mathematik dahinter erklärt.