Python Kalender programmieren

Du hast eine Idee für ein Projekt?
Antworten
pythonnoobie
User
Beiträge: 1
Registriert: Sonntag 23. Dezember 2018, 11:15

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
Benutzeravatar
__blackjack__
User
Beiträge: 13003
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@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?
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
Benutzeravatar
DeaD_EyE
User
Beiträge: 1012
Registriert: Sonntag 19. September 2010, 13:45
Wohnort: Hagen
Kontaktdaten:

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.
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server
Antworten