1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
from datetime import date, timedelta
from calendar import monthrange
from typing import Tuple
def prev_month_range(current_month: int) -> Tuple[date, date]:
current_year = date.today().year
if current_month == 1:
month = 12
year = current_year - 1
else:
month = current_month - 1
year = current_year
first_day = date(year, month, 1)
last_day = date(current_year, current_month, 1) - timedelta(days=1)
return first_day, last_day
def add_months(dt: date, months: int) -> date:
month = dt.month - 1 + months
year = dt.year + month // 12
month = month % 12 + 1
day = min(dt.day, monthrange(year, month)[1])
return date(year, month, day)
|