向下取整:
- 从您想要取整的时间中提取分钟
- 使用地板除法,找到当前小时的整数间隔(从当前分钟的地板除法和时间间隔,即要向下舍入的间隔)。
- 将时间间隔乘以整数,得到四舍五入的分钟数
- 使用 .replace() 将分钟更改为向下舍入的分钟(秒和毫秒为零)。
或者,换句话说,使用当前分钟内的整个间隔(x)的数量,将分钟替换为间隔的数量(x *间隔):
#!/usr/bin/env python3
def floor_dt(dt, interval):
replace = (dt.minute // interval)*interval
return dt.replace(minute = replace, second=0, microsecond=0)
print(datetime.now())
# datetime.datetime(2019, 5, 30, 22, 25, 31, 115901)
print(floor_dt(datetime.now(),30))
# datetime.datetime(2019, 5, 30, 22, 0)
print(datetime.now())
# datetime.datetime(2019, 5, 30, 22, 26, 29, 469555)
print(floor_dt(datetime.now(),10))
# datetime.datetime(2019, 5, 30, 22, 20)