Creating Calendars"

Creating a calendars

Use create.calendar with your list of holidays.

library(bizdays)
holidays <- calendars()[["Brazil/ANBIMA"]]$holidays
create.calendar(
  name = "MyCalendar", holidays = holidays, weekdays = c("sunday", "saturday"),
  adjust.from = adjust.next, adjust.to = adjust.previous
)

what should be considered:

Now you can call bizdays functions passing the calendar name.

is.bizday("2016-07-12", "MyCalendar")
following("2016-09-07", "MyCalendar")
bizdays("2016-07-12", "2016-10-16", "MyCalendar")

Of course you can assign the calendar to a variable directly and pass this variable to bizdays functions

cal <- create.calendar(
  name = "MyCalendar", holidays = holidays, weekdays = c("sunday", "saturday"),
  adjust.from = adjust.next, adjust.to = adjust.previous
)
is.bizday("2016-07-12", cal)

But this is not expected to work that way.

Why define weekdays?

I am frequently asked Why do I have to define weekdays? or even Shouldn't it be weekenddays instead?.

The reason I created weekdays: I want to provide a way to compute business days accordingly to any definition or satisfying any needs. In my world, the financial industry, weekends are nonworking days, but for those who work with events, for example, mondays migth be nonworking days.

weekdays defaults to NULL because I wanted the Calendar() call returned an Actual calendar.

Skiping weekends only (defining weekends as nonworking days)

You can define whatever calendar you want, for example, a calendar without holidays where only weekdays are nonworking days.

create.calendar(name = "WeekendsOnly", weekdays = c("sunday", "saturday"))

define only weekdays to weekend days.

from_dates <- "2013-01-01"
to_dates <- seq(as.Date("2013-12-31"), as.Date("2020-12-31"), by = "years")
bizdays(from_dates, to_dates, "WeekendsOnly")

Skiping mondays (defining mondays as nonworking days)

create.calendar(name = "EveryMonday", weekdays = "monday")
from_dates <- "2013-01-01"
to_dates <- seq(as.Date("2013-12-31"), as.Date("2020-12-31"), by = "years")
bizdays(from_dates, to_dates, "EveryMonday")

Skip nothing (formal current days calendar)

create.calendar(name = "Actual")
from_dates <- "2013-01-01"
to_dates <- seq(as.Date("2013-12-31"), as.Date("2020-12-31"), by = "years")
bizdays(from_dates, to_dates, "Actual")


Try the bizdays package in your browser

Any scripts or data that you put into this service are public.

bizdays documentation built on Jan. 22, 2023, 1:08 a.m.