日期和算术

时间:2017-03-30 00:38:54

标签: python-3.x date datetime arithmetic-expressions

我自己学习python近一个月了,我遇到了一个涉及" datetime"和算术运算符。

首先 - 他们让我创建一个代码,用户应该在其中输入项目的截止日期,代码必须告诉他们必须完成多少天。

我这样做了:

    import datetime  
    today = datetime.date.today()  
    delivery_date = input("Tell me your deadline (dd/mm/aa): ")

    print("\n")

    deadline = datetime.datetime.strptime(delivery_date, "%d/%m/%y").date()  
    days = delivery_date - today  
    print("You have", days.days, "days to finish your project.")

但第二部分有点棘手。

第二 - 他们要求我尝试将答案作为几周和几天的组合,并且我将需要一些数学函数来解决这个最后部分。

我这样做了:

    weeks = days // 7
    remainder_days = days % 7
    print("You have", weeks.days, "weeks and", remainder_days.days, "days.")

只有最后一部分失败了。最后我收到此错误消息:

        remainder_days = days % 7
    TypeError: unsupported operand type(s) for %: 'datetime.timedelta' and 'int'  

我知道问题在于模数符号(%),但如果他们要求我将最终结果作为数周和数天的组合,那么它是可能的,但我无法看到怎么样。

用其他方法进行简单的数学运算来解决这个问题吗? 我需要在代码中添加任何内容吗? 有人可以帮帮我吗? 谢谢

1 个答案:

答案 0 :(得分:0)

xaxis: { show: true, mode: "time", ticks: xaxisLabel, //timeformat:"%d/%m/%y %H:%M", timeformat: ( ($('#periodo').val() == "0") || ($('#periodo').val() == "1"))?"%H:%M":"%d/%m/%y", timezone: "browser", tickSize: [4, 'hour'] } 应为days = delivery_date - today。此外,您应该将其称为days = deadline - today,因为它是时间增量,您可以delta来获取天数。稍后只需使用delta.days

同样delta.days只是一个数字,因此在执行delta.days时,您不希望在结果上调用delta.days // 7

以下内容应该有效:

.days

顺便说一句,错误指向正确的方向:import datetime today = datetime.date.today() delivery_date = input("Tell me your deadline (dd/mm/aa): ") print("\n") deadline = datetime.datetime.strptime(delivery_date, "%d/%m/%y").date() delta = deadline - today print("You have", delta.days, "days to finish your project.") weeks = delta.days // 7 remainder_days = delta.days % 7 print("You have", weeks, "weeks and", remainder_days, "days.") 。这意味着你有一个时间delta对象,你在其上使用整数运行模运算符,而python告诉你它不可能。所以你需要以某种方式从你的时间增量中得到一个整数。