BloombergLP::bblb::ScheduleGenerationUtil::generateFromBusinessDayOfMonth

Load business-day-of-month schedule dates into the specified schedule.

Synopsis

Declared in <bblb_schedulegenerationutil.h>

static
void
generateFromBusinessDayOfMonth(
    bsl::vector<bdlt::Date>* schedule,
    bdlt::Date const& earliest,
    bdlt::Date const& latest,
    int exampleYear,
    int exampleMonth,
    int intervalInMonths,
    bdlt::Calendar const& calendar,
    int targetBusinessDayOfMonth);

Description

Load, into the specified schedule, the chronologically increasing sequence of unique dates that are on the specified targetBusinessDayOfMonth (or the highest count possible in the resulting month), integral multiples of the specified intervalInMonths away from the specified exampleYear and exampleMonth, and within the specified closed-interval [earliest, latest]. Business days, as per the specified calendar, are counted, if targetBusinessDayOfMonth is positive, from and including the chronologically earliest business day to chronologically later business days, and if targetBusinessDayOfMonth is negative, from and including the chronologically latest business day to chronologically earlier business days. If any of the months required for the schedule do not have a business day, return an empty schedule. The behavior is undefined unless earliest <= latest, 1 <= exampleYear <= 9999, 1 <= exampleMonth <= 12, 1 <= intervalInMonths, and 1 <= abs(targetBusinessDayOfMonth) <= 31.

Parameters

NameDescription
schedulereceives the generated date sequence
earliestinclusive start of the date window
latestinclusive end of the date window
exampleYearreference year for the interval lattice
exampleMonthreference month for the interval lattice
intervalInMonthsspacing between schedule months
calendarcalendar defining business days
targetBusinessDayOfMonthbusiness-day index within the month