【问题标题】:Number of days between two user input dates两个用户输入日期之间的天数
【发布时间】:2017-05-04 16:45:23
【问题描述】:

我正在尝试获取两个用户输入天数之间的天数。

这就是我所拥有的:

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,日期为 2017 年 5 月 20 日。

但我不断收到“ValueError: day is out of range for month”。

谁能向我解释这个错误?你知道我该如何改变吗?

提前谢谢你。

【问题讨论】:

    标签: python anaconda


    【解决方案1】:

    dateyear, month, day 的顺序获取参数。你以相反的顺序喂它们 - 这使得日期无效(你不能有 2017 年 5 月 5 日)。

    试试吧

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

    fecha2 也是如此)

    【讨论】:

    • 谢谢!不敢相信就这么简单嘿嘿。你知道我怎样才能减去这两个日期来得到它们之间的天数吗?
    • @IreneCastañeda 和diasinc.days。你忘了s
    • 是的,抱歉,当我尝试这样做时,网站说要等待半小时才能结束。
    【解决方案2】:

    date 的参数依次为yearmonthdays。根据您的输入,日期设置为2017,这超出了一个月中允许的范围。这就是错误的原因。

    试试 -

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

    下一个也一样

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多