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

2 Lösungen Lösungen öffentlich
#42

Bei Addition von Tage nur Werktage beachten

Anfänger - Python von Gustl - 22.07.2013 um 11:04 Uhr
Schreibe ein Programm welches die Anzahl der addierenden Tage abfrägt und dann das Datum ausgibt.
Bei der Addition der Tage sollen aber nur die Werktage (Geschäftstage): Montag, Dienstag, Mittwoch, Donnerstag und Freitag beachtet werden.

Beispiel: Heute ist der 22.07. (Montag), wenn ich nun 7 Tage eingebe soll der 31.07. (Mittwoch) ausgegeben werden.
#1
vote_ok
von Veigar (1120 Punkte) - 21.12.2015 um 15:03 Uhr
Quellcode ausblenden Python-Code
import time

s=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]
a=input("Tag1 Tag")
b=input("Tag1 Monat, bitte im Format Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec")
c=input("Tag1 Jahr,  bitte im Format (z.B) 2010=10")
d=input("Tag2 Tag")
e=input("Tag2 Monat, bitte im Format Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec")
f=input("Tag2 Jahr bitte im Format (z.B) 2010=10")
m=0

x=[a,b,c]
def nächstermonat(x):
    p=""
    for l in range(len(s)):
        if l!=11:
            if s[l]==x:
                p=s[l+1]
        else:
            if s[l]==x:
                p=s[0]
    return(p)


while time.strptime(str(a)+" "+str(b)+" "+str(c), "%d %b %y")!=time.strptime(str(d)+" "+str(e)+" "+str(f), "%d %b %y"):
    try:
        time.strptime(str(int(a)+1)+" "+str(b)+" "+str(c), "%d %b %y")
        a=int(a)+1
        if time.strptime(str(a)+" "+str(b)+" "+str(c), "%d %b %y")[6]<5:
            m=m+1
    except ValueError:
        if nächstermonat(b)!="Jan":
            time.strptime(str(1)+" "+nächstermonat(b)+" "+str(c), "%d %b %y")
            b=nächstermonat(b)
            a=1
            m=m+1
        else:
            time.strptime(str(1)+" "+s[0]+" "+str(int(c)+1), "%d %b %y")
            b="Jan"
            a=1
            c=int(c)+1
            if time.strptime(str(a)+" "+str(b)+" "+str(c), "%d %b %y")[6]<5:
                m=m+1

print ("zwischen den",x[0],x[1],x[2],"und den",d,e,f,"liegen",m,"Werktage")
                

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

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