Dates
Contains date utilities.
IsoWeekDay
IsoWeekDay(*values)
Python Enum containing Days of the Week, according to ISO,
where Monday == 1 ... Sunday == 7.
Provides an 'of' method can be used to verbalize a datetime.datetime.isoweekday
return value.
Example:
from pymince.dates import IsoWeekDay
friday = datetime.datetime(2023, 2, 17)
IsoWeekDay.of(friday) # pymince.dates.IsoWeekDay.FRIDAY
WeekDay
WeekDay(*values)
Python Enum containing Days of the Week,
where Monday == 0 ... Sunday == 6.
Provides an 'of' method can be used to verbalize a datetime.datetime.weekday
return value.
Example:
from pymince.dates import WeekDay
friday = datetime.datetime(2023, 2, 17)
WeekDay.of(friday) # pymince.dates.WeekDay.FRIDAY
irange
irange(start_date, stop_date=None, time_step=None)
Returns a generator that produces a sequence of datetime from "start_date" (inclusive)
to "stop_date" (exclusive) by "time_step".
:param datetime.datetime start_date: Inclusive.
:param datetime.datetime stop_date: Exclusive. `datetime.now` is used by default.
:param datetime.delta time_step: one-day `timedelta` is used by default.
Examples:
import datetime
from pymince.dates import irange
ini = datetime.datetime.fromisoformat("2022-10-31")
end = datetime.datetime.fromisoformat("2022-11-02")
day = datetime.timedelta(days=1)
it = irange(ini, stop_date=end, time_step=day)
next(it) # → datetime.datetime(2022, 10, 31, 0, 0)
next(it) # → datetime.datetime(2022, 11, 1, 0, 0)
next(it) # → raise StopIteration
string2year
string2year(value, gte=None, lte=None, shift=None)
Function to convert a string year representation to integer year.
:param str value: Value to convert.
:param Optional[int] gte: if it is specified is required that: year >= gte
:param Optional[int] lte: if it is specified is required that: year <= lte
:param Optional[int] shift: use a two-digit year on shift
:raise: "ValueError" if "value" cannot be converted.
:rtype: int
Examples:
from pymince.dates import string2year
string2year("53", shift=None) # → 2053
string2year("53", shift=1953) # → 1953
string2year("52", shift=1953) # → 2052
string2year("54", shift=1953) # → 1954
string2year("1954") # → 1954
string2year("123") # → ValueError
string2year("1955", gte=1956) # → ValueError
string2year("1955", lte=1954) # → ValueError