我正在尝试在我的程序中模拟时间变化。例如,如果我(今天)从 0 2016 年 10 月 26 日开始(我的 var 'param' 从 0 开始),那么现实世界中的一秒将是我程序中的一小时。所以每 1 秒通过我的'param += 1'。然后我可以模拟小时的时间变化。
现在我想在每个月的每个月初做一些统计。在这种情况下,我想做的第一个统计数据是 2016 年 11 月 1 日凌晨 0 点。我的问题是如何通过“param”的值找到这一点(每个月初)
today = date.today()
if t0 == '0':
time_now = today.strftime("%Y-%m-%d %H")
else:
time_now = (today + relativedelta(hours=int(param))).strftime("%Y-%m-%d %H")
请您参考如下方法:
这可能对你有用:
from datetime import datetime
from dateutil.relativedelta import relativedelta
def seconds_until_next_month():
return (datetime(year=datetime.now().year, month=datetime.now().month, day=1) +
relativedelta(months=1) - datetime.now()).seconds
def hours_until_next_month():
return seconds_until_next_month()/60.0/60.0
这里的技巧是使用 dateutil.relativedelta 来递增当前月份。这将在年底前妥善包装。
