Python :: Aufgabe #89 :: Lösung #1
2 Lösungen

#89
BashCal - grafischer Konsolenkalender
Anfänger - Python
von Michi
- 07.09.2015 um 14:34 Uhr
Schreiben Sie ein Programm das einen simplen Kalender grafisch in der Konsole darstellt.
Folgende Befehle mit Parametern sollen zur Verfügung stehen
- cal -m -> bestimmten Monat aus dem aktuellen Jahr anzeigen
- cal -y -> alle Kalender für ausgewähltes Jahr anzeigen
- cal -my -> bestimmten Monat aus bestimmten Jahr anzeigen
Beispiel:
"cal -m 2" zeigt den Kalender Februar des aktuellen Jahres
"cal -y 2013" zeigt alle Monate von Januar bis Dezember des Jahres 2013
"cal -my 2 2011" zeigt den Kalender Februar des Jahres 2011
Im Anhang befindet sich ein Beispiel der möglichen grafischen Ausgabe in der Konsole.
Folgende Befehle mit Parametern sollen zur Verfügung stehen
- cal -m -> bestimmten Monat aus dem aktuellen Jahr anzeigen
- cal -y -> alle Kalender für ausgewähltes Jahr anzeigen
- cal -my -> bestimmten Monat aus bestimmten Jahr anzeigen
Beispiel:
"cal -m 2" zeigt den Kalender Februar des aktuellen Jahres
"cal -y 2013" zeigt alle Monate von Januar bis Dezember des Jahres 2013
"cal -my 2 2011" zeigt den Kalender Februar des Jahres 2011
Im Anhang befindet sich ein Beispiel der möglichen grafischen Ausgabe in der Konsole.
#1

von hak (980 Punkte)
- 10.09.2016 um 23:41 Uhr

import sys import calendar from datetime import date def print_cal(y=date.today().year, m=date.today().month) : first_day, nr_days = calendar.monthrange(y,m) print('\n', calendar.month_name[m], y) print(' MO TU WE TH FR SA SU') mth_str = '' for i in range(first_day * (-1) +1, nr_days +1) : if i <= 0: mth_str += ' ' else: mth_str += (' ' + str(i)) if i < 10 else (' ' + str(i)) if (first_day + i) % 7 == 0 and i > 0: mth_str += '\n' print(mth_str) def main(): if len(sys.argv) == 1: print_cal() elif '-y' == sys.argv[1] : for i in range(1,13) : print_cal(int(sys.argv[2]),i) elif '-m' == sys.argv[1] : print_cal(date.today().year, int(sys.argv[2])) elif '-my' == sys.argv[1] : print_cal(int(sys.argv[3]), int(sys.argv[2])) else: print('Unknown input parameters') if __name__ == "__main__": main()
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1