CustomCalendar#

class sigtech.framework.infra.calendar.business_calendar.CustomCalendar

Class providing business day and holiday utility methods.

Note

Holidays are considered work dates. Weekends are not considered work dates and can be defined in the calendar (e.g. Friday and Saturday instead of Saturday and Sunday).

Note

Holidays and weekends are not considered business dates.

isworkday(date: numpy.ndarray) numpy.ndarray

Check if date is a work date. Holidays are considered work dates. Weekends are not considered work dates.

Parameters

date – Input date/s.

Returns

Array of bool.

isholiday(date: numpy.ndarray) numpy.ndarray

Check if date is a holiday date. Weekends are not considered holiday dates.

Parameters

date – Input date/s.

Returns

Array of bool.

isbusday(date: numpy.ndarray) numpy.ndarray

Check if date is a business date. Holidays are not considered business dates. Weekends are not considered business dates.

Parameters

date – Input date/s.

Returns

Array of bool.

adjust(date: numpy.ndarray, mode: int) numpy.ndarray

Adjust the date to the closest business date. The available mode rules, which are constants defined in sigtech.framework.infra.calendar.business_calendar, are:

  • FOLLOWING: Adjust to the next business date.

  • PREVIOUS: Adjust to the previous business date.

  • MODIFIEDFOLLOWING: Adjust to the next business date unless it falls on a different month, in which case adjust to the previous business date.

Holidays are not considered business dates. Weekends are not considered business dates.

Parameters
  • date – Input date/s.

  • mode – Mode rule.

Returns

Array of dates.

addworkdays(date: numpy.ndarray, offset: Union[int, numpy.ndarray]) numpy.ndarray

Add number (offset) of work days to a given date. Examples:

  • offset = 0 returns input date, even it is not a business date.

  • offset = 1 returns next business date, even if input date is not a business date.

  • offset < 0 moves date backward.

Holidays are considered work dates. Weekends are not considered work dates.

Parameters
  • date – Input date/s.

  • offset – Offset.

Returns

Array of dates.

addbusdays(date: numpy.ndarray, offset: Union[int, numpy.ndarray]) numpy.ndarray

Add a number (offset) of business days to a given date. Examples:

  • offset = 0 returns input date, even it is not a business date.

  • offset = 1 returns next business date, even if input date is not a business date.

  • offset < 0 moves date backward.

Parameters
  • date – Input date/s.

  • offset – Offset.

Returns

Array of dates.

classmethod end_of_month(date: numpy.ndarray) numpy.ndarray

Return the calendar date, including holidays and weekends, which is the nearest future month-end to a given date. If the date is already end of month, return the date.

Parameters

date – Input date/s.

Returns

Array of dates.

add_business_months(date: numpy.ndarray, months: int) numpy.ndarray

Return the array of offset dates which are number of months (months) away from given dates in array date if date in date array falls before the last business date of the date’s month. If the date falls on or after the last business date of the date’s month, then takes end of month date of the corresponding offset date.

Parameters
  • date – Input date/s.

  • months – Number of months.

Returns

Array of dates.

classmethod add_relative(date: numpy.array, days: int = 0, weeks: int = 0, months: int = 0, years: int = 0) numpy.ndarray

Add relative time-period (holidays and weekends included) to a date.

Parameters
  • date – Input date/s.

  • days – Number of days.

  • weeks – Number of weeks.

  • months – Number of months.

  • years – Number of years.

Returns

Array of dates.

busdaycount(start: datetime.date, end: datetime.date)

Count business dates from start date (inclusive) to end date (exclusive). Holidays are not considered business dates. Weekends are not considered business dates.

Parameters
  • start – Start date.

  • end – End date.

Returns

Array of dates.

range(start: datetime.date, end: datetime.date)

Return business dates from start date (inclusive) to end date (exclusive). Holidays are not considered business dates. Weekends are not considered business dates.

Parameters
  • start – Start date.

  • end – End date.

Returns

Array of dates.