2015-12-16 11 views
6

wiem jak uzyskać datę:Czy możesz robić sumy z datetime w Pythonie?

from datetime import datetime 
time = datetime.now() 
print(time) 

Ale czy jest jakiś sposób, gdzie można poćwiczyć dni/godziny, aż w określonym terminie, może przechowywać datę jako liczbę całkowitą, czy coś? Thx dla wszystkich odpowiedzi

Odpowiedz

0

Mam pod swoją odpowiedź i opracowane tak, że użytkownik może wprowadzić datę, że chcą : Tutaj jest

from datetime import datetime 
year=int(input("What year?")) 
month=int(input("What month?")) 
day=int(input("What day?")) 
hour=int(input("What hour?")) 
minute=int(input("What minute?")) 
second=int(input("What second?")) 
then = datetime(year,month,day,hour,minute,second) 
now = datetime.now() 
diff = then - now 
print(diff) 

print(diff.total_seconds()) 

Th anks wam wszystkim za odpowiedzi: D

Teraz Zmienna

Oto jeszcze lepszy kod, można po prostu wyjąć teraźniejszości zmienna, i umieścić go bezpośrednio w całkowitej różnicy


from datetime import datetime 
while True: 
    inp = input("Enter date in format yyyy/mm/dd hh:mm:ss") 
    try: 
     then = datetime.strptime(inp, "%Y/%m/%d %H:%M:%S") 
     break 
    except ValueError: 
     print("Invalid input") 
diff = then - datetime.now() 
print(diff, "until", inp) 
print(diff.total_seconds(),"seconds") 
+0

Możesz to zrobić z pojedynczym ciągiem, dodam go do mojej odpowiedzi –

+0

Edytowałeś edytować [;). ] Tak to teraz wygląda następująco: –

+0

z datetime import datetime podczas Prawda: INP = input ("Podaj datę w formacie RRRR/MM/DD hh: mm: ss") try: następnie = datetime.strptime (inp "% y /% m /% k% H:% m% S") przerwa wyjątkiem ValueError: drukowania ("nieprawidłowe dane") teraz = datetime.now() diff = następnie - teraz print (diff, "until", inp) print (diff.total_seconds(), "seconds") –

7

Po prostu utwórz inny obiekt datetime i odejmij, który da ci obiekt timedelta.

from datetime import datetime 
now = datetime.now() 
then = datetime(2016,1,1,0,0,0) 
diff = then - now 
print(diff) 

print(diff.total_seconds()) 

15 days, 3:42:21.408581 
1309365.968044 

Jeśli chcesz wziąć wprowadzanych przez użytkownika:

from datetime import datetime 


while True: 
    inp = input("Enter date in format yyyy/mm/dd hh:mm:ss") 
    try: 
     then = datetime.strptime(inp, "%Y/%m/%d %H:%M:%S") 
     break 
    except ValueError: 
     print("Invalid input") 

now = datetime.now() 
diff = then - now 
print(diff) 

Demo:

$Enter date in format yyyy/mm/dd hh:mm:ss2016/01/01 00:00:00 
15 days, 3:04:51.960110 
+0

Thx, pomyślałem, że to może być coś takiego prostego. –

+0

Błąd, zapomniałeś linków do dokumentu. : D –

+0

@BhargavRao, testowałem tylko czy byłeś online;) –

Powiązane problemy