我正在尝试制作一个python机器人,作为命令的一部分,我想显示每天服务器重新启动(东部时间晚上11点)之前的时间
这是我写的代码,但它有时会给出一些奇怪的输出,当午夜时,它会返回40小时,直到重新启动
有人能帮我吗
@client.command()
async def gettime(self):
now = datetime.now()
# 11 est == 17 gmt+1
reset = datetime.strptime('16:00', '%H:%M')
if now == reset:
await self.send('the restart is happening now')
elif now < reset:
untilrestarthour = reset.hour - now.hour
untilrestartminute = 60 - now.minute
await self.send(f'the restart is happening in {untilrestarthour} hours and {untilrestartminute}''s ')
elif now > reset:
untilrestarthour = 24 - (now.hour - reset.hour)
untilrestartminute = 60 - now.minute
await self.send(f'the restart is happening in {untilrestarthour} hours and {untilrestartminute} minute''s ')
else:
await self.send("error")
在当前版本中,从24小时到60分钟进行减法,因此最后从
24h+60minutes
进行减法,得到25h
。你必须做一些类似的事情但最好使用正确的日期而不是
1900-01-01
,然后可以使用now - reset
或reset - now
正确计算小时和分钟结果
唯一的问题是
now - reset
(reset - now
)创建对象datetime.timedelta
,该对象可以生成字符串1:49:00
,但不能分别给出小时1和分钟49。它只给出总秒数,您必须手动将秒数转换为小时和分钟结果:
相关问题 更多 >
编程相关推荐