-
Notifications
You must be signed in to change notification settings - Fork 0
/
date_utils.py
25 lines (17 loc) · 723 Bytes
/
date_utils.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
from datetime import datetime, timedelta
import math
def parse_date(date_str: str):
return datetime.strptime(date_str, '%Y%m%d')
def date2str(date: datetime):
return date.strftime('%Y%m%d')
def split(start: datetime, end: datetime, step: int):
days = (end - start).days + 1
part_start, part_end = start, min(start + timedelta(days=step - 1), end)
for _ in range(math.ceil(days / step)):
yield (part_start, part_end)
part_start = part_start + timedelta(days=step)
part_end = part_end + timedelta(days=step)
part_end = min(part_end, end)
def split_size(start: datetime, end: datetime, step: int):
days = (end - start).days + 1
return math.ceil(days / step)