daynextprev

calculate next/prev day from y/m/d input


License
Other
Install
pip install daynextprev==0.0.6

Documentation

day-nextprev

Installation

$ pip install daynextprev

Usage

Calc next day

from daynextprev import next_day
ny, nm, nd = next_day(2015, 2, 22)

datetime.date type is supported for the argument:

from datetime import date
from daynextprev import next_day
the_next_day = next_day(date(2015, 5, 22))  # => datetime.date(2015, 5, 23)

Calc previous day

from daynextprev import prev_day
py, pm, pd = prev_day(2017, 3, 1)

from datetime import date
the_prev_day = prev_day(date(2017, 3, 1))  # => datetime.date(2017, 2, 28)

Iterate days

from daynextprev import days
for y, m, d in days((2018, 1, 1), (2018, 12, 31), include_end=True):
    print(y, m, d)

# default value for include_end is True
all_2018days = list(days((2018, 1, 1), (2018, 12, 31)))

You can use datetime.date here, too.

from daynextprev import days
from datetime import date
for dt_obj in days(date(2018, 1, 1), date(2018, 12, 31), include_end=True):
    print(dt_obj)

And you can go backward. (days_backward also supports datetime.date)

from daynextprev import days_backward
for y, m, d in days_backward((2018, 12, 31), (2018, 1, 1), include_end=True):
    print(y, m, d)

Check leapyear

from daynextprev import is_leapyear
is_leapyear(2016)  # => True

Calc last day of month

from daynextprev import days_of_month
days_of_month(2016, 2)  # => 29

Calc next (year, month)

from daynextprev import next_month
next_y, next_m = next_month(2018, 12)  # => (2019, 1)

Calc previous (year, month)

from daynextprev import prev_month
prev_y, prev_m = prev_month(2018, 1)  # => (2017, 12)

Iterate (year, month)

from daynextprev import months
for year, month in months((2017, 1), (2018, 6), include_end=True):
    print(year, month)

# default value for include_end is True
all_2017months = list(months((2017, 1), (2017, 12))

Also you can go backward.

from daynextprev import months_backward
fro year, month in months((2018, 3), (2017, 10), include_end=True):
    print(year, month)

all_2017months_reversed = list(months_backward((2017, 12), (2017, 1)))

Calc start day of a week

from daynextprev import this_week, W_TUESDAY
import datetime

this_week(datetime.date(2019, 2, 1))  # => datetime.date(2019, 1, 28)

this_week(datetime.date(2019, 2, 1), week_start=W_TUESDAY)  # => datetime.date(2019, 1, 29)

Default value of week_start is W_MONDAY ( which value is 0 )

Calc start day of next week

from daynextprev import next_week, W_TUESDAY
import datetime

next_week(datetime.date(2019, 2, 1))  # => datetime.date(2019, 2, 4)

next_week(datetime.date(2019, 2, 1), week_start=W_TUESDAY)  # => datetime.date(2019, 2, 5)

Default value of week_start is W_MONDAY ( which value is 0 )

Calc start day of previous week

from daynextprev import prev_week, W_TUESDAY
import datetime

prev_week(datetime.date(2019, 2, 1))  # => datetime.date(2019, 1, 21)

prev_week(datetime.date(2019, 2, 1), week_start=W_TUESDAY)  # => datetime.date(2019, 1, 22)

Default value of week_start is W_MONDAY ( which value is 0 )