Python,将时间向下舍入到最接近的 15 分钟时钟标记
Python, round DOWN time to the nearest 15mins clock mark
我如何将时间向下舍入到最接近的 15 分钟时钟标记。
下面的代码四舍五入到最接近的 15 分钟时钟标记,即如果时间是 5:08 变为 5:15。但是我想让这一轮下降而不是上升并成为 5:00
请帮忙
这是我的代码
fajr_jamaat = ceil(fajr_jamaat_date).strftime('%H:%M:%S')
函数是
def ceil(dt):
if dt.minute % 15 or dt.second:
return dt + timedelta(minutes = 15 - dt.minute % 15, seconds = -(dt.second % 60))
else:
return dt
这应该有效。
import datetime
def ceil(dt):
minut = int(dt.strftime('%M'))*60
secon = int(dt.strftime('%S'))
h = int(dt.strftime('%H'))
tot = minut + secon
#print(tot)
nearest = round(tot/900)*900
#print('time is %d:%d'%(tot/60, tot%60), 'nearest fifteen mark is %d:%d'%(nearest/60, nearest%60))
if nearest/60 == 60 and h < 23:
nr_15_mark = dt.replace(hour=h+1, minute=0, second=0)
elif nearest/60 == 60 and h == 23:
#wrapping the hour back to 0
nr_15_mark = dt.replace(hour=0, minute=0, second=0)
else:
nr_15_mark = dt.replace(minute=int(nearest/60), second=nearest%60)
return nr_15_mark
#fajr_jamaat_date = datetime.datetime(2017,1,1,23,58,0)
fajr_jamaat = ceil(fajr_jamaat_date).strftime('%H:%M:%S')
#print(fajr_jamaat)
请注意,由于我们只考虑小时、分钟和秒,因此当 fajr_jamaat_date 的时间超过 23:47:30 时,我们在寻找最近的标记时忽略了日期添加。
我如何将时间向下舍入到最接近的 15 分钟时钟标记。 下面的代码四舍五入到最接近的 15 分钟时钟标记,即如果时间是 5:08 变为 5:15。但是我想让这一轮下降而不是上升并成为 5:00 请帮忙
这是我的代码
fajr_jamaat = ceil(fajr_jamaat_date).strftime('%H:%M:%S')
函数是
def ceil(dt):
if dt.minute % 15 or dt.second:
return dt + timedelta(minutes = 15 - dt.minute % 15, seconds = -(dt.second % 60))
else:
return dt
这应该有效。
import datetime
def ceil(dt):
minut = int(dt.strftime('%M'))*60
secon = int(dt.strftime('%S'))
h = int(dt.strftime('%H'))
tot = minut + secon
#print(tot)
nearest = round(tot/900)*900
#print('time is %d:%d'%(tot/60, tot%60), 'nearest fifteen mark is %d:%d'%(nearest/60, nearest%60))
if nearest/60 == 60 and h < 23:
nr_15_mark = dt.replace(hour=h+1, minute=0, second=0)
elif nearest/60 == 60 and h == 23:
#wrapping the hour back to 0
nr_15_mark = dt.replace(hour=0, minute=0, second=0)
else:
nr_15_mark = dt.replace(minute=int(nearest/60), second=nearest%60)
return nr_15_mark
#fajr_jamaat_date = datetime.datetime(2017,1,1,23,58,0)
fajr_jamaat = ceil(fajr_jamaat_date).strftime('%H:%M:%S')
#print(fajr_jamaat)
请注意,由于我们只考虑小时、分钟和秒,因此当 fajr_jamaat_date 的时间超过 23:47:30 时,我们在寻找最近的标记时忽略了日期添加。