Get the event dates or datetimes from a schedule.

schedule(x, from = NULL, to = NULL, during = NULL,
  period_type = "day", n = 1)

schedule_days(x, from = NULL, to = NULL, during = NULL)

schedule_hours(x, from = NULL, to = NULL, during = NULL)

schedule_next_days(x, n, from, limit = lubridate::years(1))

Arguments

x

A schedule object.

from, to, during

The limits to place on the output (see Details).

period_type

The period type of the output. Eg. "day" (the default), "hour" etc. Can be any unit accepted by lubridate::period().

n

The increment of the period type. Eg. for events occurring every half-hour the period_type should "minute" and n should be set to 30.

Value

A date or datetime object.

Details

schedule_days() is a convenience function for schedule() where period_type is pre-filled as "day". Likewise for schedule_hours(), where period_type is pre-filled as "hour". These functions are recommended as they cover the most common use cases.

The from and to arguments set limits on the output. They are only required when the schedule x doesn't have implicit limits (and therefore has an infinite number of possible events).

  • from and to can each be either:

    • a single date or datetime value or,

    • A numeric year.

      • In the case of from, a numeric year translates to the start date of the year eg. from = 2000 translates to as.Date("2000-01-01").

      • In the case of to it translates to the end of the year eg. to = 2001 translates to as.Date("2001-12-31").

  • during is a shortcut for when setting a single year limit. Eg. during = 2000 is the equivalent of setting from = as.Date("2000-01-01") and to = as.Date("2000-12-31").

Examples

library(magrittr) on_paydays <- on_mday(25) schedule_days(on_paydays, from = as.Date("2000-06-01"), to = as.Date("2000-12-01"))
#> [1] "2000-06-25" "2000-07-25" "2000-08-25" "2000-09-25" "2000-10-25" #> [6] "2000-11-25"
schedule_days(on_paydays, from = 2000, to = 2001)
#> [1] "2000-01-25" "2000-02-25" "2000-03-25" "2000-04-25" "2000-05-25" #> [6] "2000-06-25" "2000-07-25" "2000-08-25" "2000-09-25" "2000-10-25" #> [11] "2000-11-25" "2000-12-25" "2001-01-25" "2001-02-25" "2001-03-25" #> [16] "2001-04-25" "2001-05-25" "2001-06-25" "2001-07-25" "2001-08-25" #> [21] "2001-09-25" "2001-10-25" "2001-11-25" "2001-12-25"
schedule_days(on_paydays, during = 2000)
#> [1] "2000-01-25" "2000-02-25" "2000-03-25" "2000-04-25" "2000-05-25" #> [6] "2000-06-25" "2000-07-25" "2000-08-25" "2000-09-25" "2000-10-25" #> [11] "2000-11-25" "2000-12-25"
on_jan_paydays <- only_occur(on_paydays, in_month("Jan")) schedule_hours(on_jan_paydays, during = 2000)
#> [1] "2000-01-25 00:00:00 UTC" "2000-01-25 01:00:00 UTC" #> [3] "2000-01-25 02:00:00 UTC" "2000-01-25 03:00:00 UTC" #> [5] "2000-01-25 04:00:00 UTC" "2000-01-25 05:00:00 UTC" #> [7] "2000-01-25 06:00:00 UTC" "2000-01-25 07:00:00 UTC" #> [9] "2000-01-25 08:00:00 UTC" "2000-01-25 09:00:00 UTC" #> [11] "2000-01-25 10:00:00 UTC" "2000-01-25 11:00:00 UTC" #> [13] "2000-01-25 12:00:00 UTC" "2000-01-25 13:00:00 UTC" #> [15] "2000-01-25 14:00:00 UTC" "2000-01-25 15:00:00 UTC" #> [17] "2000-01-25 16:00:00 UTC" "2000-01-25 17:00:00 UTC" #> [19] "2000-01-25 18:00:00 UTC" "2000-01-25 19:00:00 UTC" #> [21] "2000-01-25 20:00:00 UTC" "2000-01-25 21:00:00 UTC" #> [23] "2000-01-25 22:00:00 UTC" "2000-01-25 23:00:00 UTC"
on_jan_payday_2002 <- on_paydays %>% only_occur(in_month("Jan")) %>% only_occur(in_year(2002)) ## No limits required schedule_days(on_jan_payday_2002)
#> [1] "2002-01-25"
schedule_hours(on_jan_payday_2002)
#> [1] "2002-01-25 00:00:00 UTC" "2002-01-25 01:00:00 UTC" #> [3] "2002-01-25 02:00:00 UTC" "2002-01-25 03:00:00 UTC" #> [5] "2002-01-25 04:00:00 UTC" "2002-01-25 05:00:00 UTC" #> [7] "2002-01-25 06:00:00 UTC" "2002-01-25 07:00:00 UTC" #> [9] "2002-01-25 08:00:00 UTC" "2002-01-25 09:00:00 UTC" #> [11] "2002-01-25 10:00:00 UTC" "2002-01-25 11:00:00 UTC" #> [13] "2002-01-25 12:00:00 UTC" "2002-01-25 13:00:00 UTC" #> [15] "2002-01-25 14:00:00 UTC" "2002-01-25 15:00:00 UTC" #> [17] "2002-01-25 16:00:00 UTC" "2002-01-25 17:00:00 UTC" #> [19] "2002-01-25 18:00:00 UTC" "2002-01-25 19:00:00 UTC" #> [21] "2002-01-25 20:00:00 UTC" "2002-01-25 21:00:00 UTC" #> [23] "2002-01-25 22:00:00 UTC" "2002-01-25 23:00:00 UTC"
schedule(on_jan_payday_2002, period_type = "minute", n = 30)
#> [1] "2002-01-25 00:00:00 UTC" "2002-01-25 00:30:00 UTC" #> [3] "2002-01-25 01:00:00 UTC" "2002-01-25 01:30:00 UTC" #> [5] "2002-01-25 02:00:00 UTC" "2002-01-25 02:30:00 UTC" #> [7] "2002-01-25 03:00:00 UTC" "2002-01-25 03:30:00 UTC" #> [9] "2002-01-25 04:00:00 UTC" "2002-01-25 04:30:00 UTC" #> [11] "2002-01-25 05:00:00 UTC" "2002-01-25 05:30:00 UTC" #> [13] "2002-01-25 06:00:00 UTC" "2002-01-25 06:30:00 UTC" #> [15] "2002-01-25 07:00:00 UTC" "2002-01-25 07:30:00 UTC" #> [17] "2002-01-25 08:00:00 UTC" "2002-01-25 08:30:00 UTC" #> [19] "2002-01-25 09:00:00 UTC" "2002-01-25 09:30:00 UTC" #> [21] "2002-01-25 10:00:00 UTC" "2002-01-25 10:30:00 UTC" #> [23] "2002-01-25 11:00:00 UTC" "2002-01-25 11:30:00 UTC" #> [25] "2002-01-25 12:00:00 UTC" "2002-01-25 12:30:00 UTC" #> [27] "2002-01-25 13:00:00 UTC" "2002-01-25 13:30:00 UTC" #> [29] "2002-01-25 14:00:00 UTC" "2002-01-25 14:30:00 UTC" #> [31] "2002-01-25 15:00:00 UTC" "2002-01-25 15:30:00 UTC" #> [33] "2002-01-25 16:00:00 UTC" "2002-01-25 16:30:00 UTC" #> [35] "2002-01-25 17:00:00 UTC" "2002-01-25 17:30:00 UTC" #> [37] "2002-01-25 18:00:00 UTC" "2002-01-25 18:30:00 UTC" #> [39] "2002-01-25 19:00:00 UTC" "2002-01-25 19:30:00 UTC" #> [41] "2002-01-25 20:00:00 UTC" "2002-01-25 20:30:00 UTC" #> [43] "2002-01-25 21:00:00 UTC" "2002-01-25 21:30:00 UTC" #> [45] "2002-01-25 22:00:00 UTC" "2002-01-25 22:30:00 UTC" #> [47] "2002-01-25 23:00:00 UTC" "2002-01-25 23:30:00 UTC"