Home

mint @79893c2c3c42f12f7bfd766fb8871e13047ca916 - 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 calendar import monthrange
from datetime import date, timedelta
from typing import Tuple


def prev_month_range(current_month: int, current_year: int) -> Tuple[date, date]:
    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)