2017-05-04 113 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)

同样适用于下一个

相关问题