Home

mint @e9a605f47f57723424ae99e169737262e9b0d31d - refs - log -
-
https://git.jolheiser.com/mint.git
Budget
mint / budget / utils.py
- raw -
 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)