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

2 Lösungen Lösungen öffentlich
#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.
#1
vote_ok
von hak (980 Punkte) - 10.09.2016 um 23:41 Uhr
Quellcode ausblenden Python-Code
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

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben