我自己学习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'
我知道问题在于模数符号(%),但如果他们要求我将最终结果作为数周和数天的组合,那么它是可能的,但我无法看到怎么样。
用其他方法进行简单的数学运算来解决这个问题吗? 我需要在代码中添加任何内容吗? 有人可以帮帮我吗? 谢谢
答案 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告诉你它不可能。所以你需要以某种方式从你的时间增量中得到一个整数。