从用户输入中读取日期,格式为yyyy,mm,dd。然后找到日期之间的天数。日期时间需要整数,并且需要将输入从字符串转换为整数。先前的问题似乎涉及时间或操作系统不同,而这些建议似乎不适用于Anaconda和Win10。我尝试了那些似乎是针对Win10 OS的程序。用户输入变量是字符串,因此显然不能转换为整数格式。
我尝试了多种方法来转换为整数,并且datetime响应并显示错误,指示它需要整数,并且看到元组,列表或字符串。如果我直接输入日期值,则一切正常。我试过了-作为用户输入中的分隔符,仍然出现错误。我尝试将输入包装在(“”),“”,“'和()中,但仍然出现错误。我无法在标签中更具体地说明问题,但以下内容可能会对您有所帮助。我在Anaconda的Windows 10上使用python 2.6。由于某种原因,无法识别datetime.strptime,因此某些响应不起作用。
InitialDate = input("Enter the begin date as yyyy,mm,dd")
FinalDate = input("Enter the end date as yyyy,mm,dd")
ID = InitialDate.split(",")
ID2 = int(Id[0]),int(Id[1]),int(Id[2])
Iday = datetime.datetime(Id2)
Fd = FinalDate.split(",")
Fd2 = int(Fd[0]),int(Fd[1]),int(Fd[2])
Fday = datetime.datetime(Fd2)
age = (Fd2 - Id2).day
我希望年龄是一个整数值。
我收到类型错误,在执行年龄行之前需要一个整数(获得类型元组)。
答案 0 :(得分:2)
使用.strptime()
将字符串date转换为date对象,然后计算diff
例如:
import datetime
InitialDate = "2019,02,10" #input("Enter the begin date as yyyy,mm,dd")
FinalDate = "2019,02,20" #input("Enter the end date as yyyy,mm,dd")
InitialDate = datetime.datetime.strptime(InitialDate, "%Y,%m,%d")
FinalDate = datetime.datetime.strptime(FinalDate, "%Y,%m,%d")
age = (FinalDate - InitialDate).days
print(age)
输出:
10
答案 1 :(得分:0)
从日期时间导入日期时间
InitialDate = input(“以yyyy / mm / dd输入开始日期:”) FinalDate = input(“输入结束日期为yyyy / mm / dd:”)
InitialDate = datetime.strptime(InitialDate,'%Y /%m /%d') FinalDate = datetime.strptime(FinalDate,'%Y /%m /%d')
差异= FinalDate-InitialDate 打印(difference.days)
答案 2 :(得分:0)
我只是有一个类似的问题,我的解决方案是使用数组的值创建另一个整数。像这样:
ID = InitialDate.split(",")
Id0 = Id[0]
Id1 = Id[1]
Id2 = Id[2]
ID2 = int(Id0),int(Id1),int(Id2)
Iday = datetime.datetime(Id2)
Fd = FinalDate.split(",")
Fd0 = Fd[0]
Fd1 = Fd[1]
Fd2 = Fd[2]
Fd2 = int(Fd0),int(Fd1),int(Fd2)
Fday = datetime.datetime(Fd2)
age = (Fd2 - Id2).day