计算并减去不是今天的日期的特定时间



我正在尝试为我的电脑编写自动关机程序。我对编程相当陌生,对这个问题可能很容易解决。

我有两个约会

import datetime
startup_date = datetime.datetime.now() #This is the datetime when I start up my pc
shutdown_date = startup_date + datetime.timedelta(days=1) #Tomorrow

所以,我想让shutdown_date发生在第二天凌晨3点。我想如何获得明天的约会,但我不知道如何计算为了总是计时器指着第二天凌晨3点。有时我在中午12点启动电脑,有时在下午2点。所以我需要自动计算启动时间和期望的关闭时间(第二天凌晨3点)之间的差异。

我相信这很容易解决,但是我看不出来。

谢谢!

你可以:

  1. 获取今天的日期
  2. 加一天
  3. 将其时间改为凌晨3点:
import datetime
startup_date = datetime.datetime.now()
shutdown_date = startup_date + datetime.timedelta(days=1)
shutdown_date = shutdown_date.replace(hour=3, minute=0, second=0, microsecond=0)

您可以从shutdown_date开始,但只使用date组件,并将time硬编码为03:00。然后你可以从startup_date

中减去新的日期时间
>>> import datetime
>>> startup_date = datetime.datetime.now()
>>> shutdown_date = startup_date + datetime.timedelta(days=1)
>>> tomorrow_morning = datetime.datetime(shutdown_date.year, shutdown_date.month, shutdown_date.day, hour=3)
>>> tomorrow_morning - startup_date
datetime.timedelta(seconds=48730, microseconds=54057)

与凌晨3点的时间组合:

shutdown_date = datetime.datetime.combine(shutdown_date, datetime.time(3, 0))

相关内容

最新更新