from datetime import datetime, timedelta
now = datetime.now()
start = now timedelta(minutes = 15)
finish = start timedelta(minutes = 30)
如何找到開始和結束之間存在的 15 分鐘間隔數?
uj5u.com熱心網友回復:
from datetime import datetime, timedelta
now = datetime.now()
start = now timedelta(minutes = 15)
finish = start timedelta(minutes = 30)
elapsed = finish - start
number_of_intervals = elapsed / timedelta(minutes=15)
elapsed是和timedelta之間。除以 15 分鐘以計算其中適合多少 15 分鐘間隔。startfinish
請注意,這將回傳一個浮點數,因此包括小數間隔。適當的圓形。
uj5u.com熱心網友回復:
您需要在分鐘內找到開始和結束之間的差異,除以 15,然后將其設為 int:
now = datetime.now()
start = now timedelta(minutes = 15)
finish = start timedelta(minutes = 30)
difference = (finish - start).total_seconds()/60
quarters = int(difference/15)
uj5u.com熱心網友回復:
我會寫類似這樣的東西:
from datetime import datetime, timedelta
DATE_TIME_STRING_FORMAT = '%Y-%m-%dT%H:%M:%S.%fZ'
from_date_time = datetime.strptime('2016-06-06T05:00:00.000Z',
DATE_TIME_STRING_FORMAT)
to_date_time = datetime.strptime('2016-06-06T06:00:00.000Z',
DATE_TIME_STRING_FORMAT)
date_times = [from_date_time.strftime(DATE_TIME_STRING_FORMAT)]
date_time = from_date_time
while date_time < to_date_time:
date_time = timedelta(minutes=15)
date_times.append(date_time.strftime(DATE_TIME_STRING_FORMAT))
print(date_times)
輸出:
['2016-06-06T05:00:00.000000Z', '2016-06-06T05:15:00.000000Z', '2016-06-06T05:30:00.000000Z', '2016-06-06T05:45:00.000000Z', '2016-06-06T06:00:00.000000Z']
編輯:如果您只對 15 分鐘間隔的數量感興趣,您可以使用類似:from datetime import datetime, timedelta
DATE_TIME_STRING_FORMAT = '%Y-%m-%dT%H:%M:%S.%fZ'
from_date_time = datetime.strptime('2016-06-06T05:00:00.000Z',
DATE_TIME_STRING_FORMAT)
to_date_time = datetime.strptime('2016-06-06T06:00:00.000Z',
DATE_TIME_STRING_FORMAT)
print((to_date_time-from_date_time) / timedelta(minutes=15))
uj5u.com熱心網友回復:
您可以使用time庫而不是日期時間。time適用于秒,您應該將分鐘轉換為秒:
import time
interval = 45*60
start = time.time()
finish = time.time() interval
diff = finish - start
print(diff // (15*60))
uj5u.com熱心網友回復:
簡單地比較一下start,finish就像這樣:
from datetime import datetime, timedelta
now = datetime.now()
start = now timedelta(minutes = 15)
finish = start timedelta(minutes = 30)
elapsed = finish - start # This is a timedelta object
reference_interval = 15*60 # interval in seconds
number_of_intervals = elapsed.seconds/reference_interval
正如 S?ren 所指出的,如果 'elapsed' 超過一天,這將不起作用,在這種情況下,只需按如下方式計算數字:
number_of_intervals = (elapsed.days*86400 elapsed.seconds)/reference_interval
# (86400 seconds in a day)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/452714.html
