Tage berechnen

Neue Frage »

Auf diesen Beitrag antworten »
lea Tage berechnen

Schreiben Sie das folgende Python 3.6 Programm: Lassen Sie den Nutzer ein Datum
von der Form DDMMYYYY eingeben. Berechnen Sie anhand dieses Datums, wie
viele Tage es von diesem Tag bis zum N¨achsten Weihnachtsfest sind. Schaltjahre
mussen Sie dabei nicht bedenken.

Weihanchten soll der 25. 12 sein. Mein Ansatz sieht so aus, allerding weiß ich nicht, wo der input hinsoll, dass der Nutzer ein Datum eingeben kann und wie ich bis zum 25.12 die Tage berechnen lassen kann

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
def anzahlTageImMonat(monat, jahr):
    if monat in [1, 3, 5, 7, 8, 10, 12]:
        anzahl = 31
    elif monat in [4, 6, 9, 11]:
        anzahl = 30
    elif schaltjahr(jahr):
        anzahl = 29
    else:
        anzahl = 28
    return anzahl

def naechstesDatum(datum):
    (tag, monat, jahr) = datum
    if tag < anzahlTageImMonat(monat, jahr):
        tag = tag + 1
    elif monat < 12:
        tag = 1
        monat = monat + 1
    else:
        tag = 1
        monat = 1
        jahr = jahr + 1
    return (tag, monat, jahr)
 
Auf diesen Beitrag antworten »
as_string

Hallo!

Du hast jetzt etwas, das zu einem Datum den darauf folgenden Tag ermittelt. Keine Ahnung, was das bringen soll.
Ich würde bei der Aufgabenstellung eher so vorgehen: Vom übergebenen Tag rechnest Du die Tage in demselben Monat aus. Dann addierst Du dazu die Summe der Tage der zwischen dem übergebenen Monat und Dezember liegenden Monate. Dann noch die 25 im Dezember.
Aufpassen musst Du aber, wenn der übergebene Monat schon Dezember ist. Wenn es vor dem 25. ist, ist es ja einfach. Wenn danach muss man aber bis zum Weihnachten im nächsten Jahr rechnen.

Ich würde Datumsberechnungen aber wenn irgendwie möglich nie selber machen sondern eine passende Bibliothek der jeweiligen Programmiersprache verwenden. Aber das ist hier ja offenbar nicht die Aufgabe.

Gruß
Marco
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »