2017-05-04 84 views
0

我試圖獲取兩個用戶輸入日期之間的天數。兩個用戶輸入日期之間的天數

這是我有:

import datetime 

now = datetime.datetime.now() 

print(now.day) 

print(now.year) 

print(now.month) 

salario = float(input("¿Cuál es su salario mensual en colones? ")) 

print ("Fecha inicial de la incapacidad") 
dia1 = int(input("Día: ")) 
mes1 = int(input("Mes: ")) 
ano1 = int(input("Año: ")) 
fecha1 = datetime.date(dia1, mes1, ano1) 
print ("Fecha final de la incapacidad") 
dia2 = int(input("Día: ")) 
mes2 = int(input("Mes: ")) 
ano2 = int(input("Año: ")) 
fecha2 = datetime.date(dia2, mes2, ano2) 

diasinc = fecha2 - fecha2 
print (diasinc.day) 

(基於this項答案)

我進入爲dia1 = 20,MES1 = 5,ANO1 = 2017的日期5月20日,

但我不斷收到「ValueError:日超出月份範圍」。

任何人都可以向我解釋這個錯誤嗎?你知道我怎麼能改變這個嗎?

預先感謝您。

回答

5

dateyear, month, day的順序獲取參數。你以相反的順序餵它們 - 這會導致無效的日期(你不能在2017年5月5日)。

嘗試,而不是

fecha1 = datetime.date(ano1, mes1, dia1) 

(同樣適用於fecha2

+0

謝謝!簡直不能相信這是個嘿嘿。你知道我如何減去兩個日期來獲得他們之間的天數? –

+0

@IreneCastañeda與'diasinc.days'。你忘了'' – Uriel

+0

對不起,當我試圖這樣做,該網站說等待半小時結束。 –

2

的論據dateyearmonthdays秩序。根據您的輸入,該日期設置爲2017,該日期超出了一個月中的天數的允許範圍。這就是錯誤的原因。

嘗試 -

fecha1 = datetime.date(ano1, mes1, dia1)

同樣適用於下一個

相關問題