Time unit constructors for the synodic lunar time system, where the boundary
of each month is at the new moon (lunar conjunction) and the boundary of
each phase is at a lunar octant (each eighth of the synodic cycle). Both
boundaries are location-independent, as the new moon is a geocentric
astronomical event. cal_time_lunar is an alias for
cal_time_lunar_synodic.
Value
An S3 list of class c("cal_time_lunar", "mt_calendar") containing
the named time unit classes of the synodic lunar calendar. Each unit is
accessible via $ notation and calling it with a step size produces a
time granule (e.g., 1 synodic month granule as
cal_time_lunar$month(1L)). Lunar month and phase boundaries are
location-independent.
Details
The following time units are available in the lunar calendar systems.
month(): Synodic month unitphase(): Synodic phase unit
Examples
# Find the time of the most recent new moon in the Gregorian calendar
time_floor(datetime(Sys.time(), tz = "Australia/Melbourne"), cal_time_lunar$month(1L))
#> <mixtime[1]>
#> [1] 2026-10-11 02:51:08 AEDT