【问题标题】:Using dates from user input with datetime to calculate number of days between the dates使用用户输入的日期和日期时间来计算日期之间的天数
【发布时间】:2019-04-01 11:35:54
【问题描述】:

从用户输入中读取日期,格式为 yyyy,mm,dd。然后找到日期之间的天数。日期时间需要整数,输入需要从字符串转换为整数。以前的问题似乎涉及时间或不同的操作系统,而这些建议似乎不适用于 Anaconda 和 Win10。我尝试了那些似乎适用于 Win10 操作系统的。用户输入变量不能像输入的那样工作,因为它们是字符串,显然需要转换为整数格式。

我尝试了各种方法来转换为整数,并且 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

我希望年龄为整数值。
我收到类型错误,在执行年龄线之前需要一个整数(获取类型元组)。

【问题讨论】:

    标签: python date datetime


    【解决方案1】:

    使用.strptime()将字符串日期转换为日期对象,然后计算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
    

    【讨论】:

      【解决方案2】:

      从日期时间导入日期时间

      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 打印(差异.天)

      【讨论】:

        【解决方案3】:

        我刚刚遇到了类似的问题,我的解决方案是用数组的值创建另一个 int。像这样的:

        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 
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-01-29
          • 1970-01-01
          • 1970-01-01
          • 2021-07-24
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多