Как округлить дату до начала / конца квартала?

Мне нужно взять вектор дат и для каждой даты получить первый день следующего квартала.

(Или, вернее, округлить до последнего дня текущего квартала, найти первый день следующего квартала и снять план - мой план)

lubridate будут круглые / потолочные месяцы, а не четверти

Единственное решение, которое я нашел до сих пор, - это сделать вектор, перечисляющий все кварталы, начинающиеся с 1970 по 2099 год, а затем выполнить поиск по нему, чтобы найти минимальную дату после моей даты. Понятно, что это векторизация и масштабирование плохо.

Мне нужно уметь указывать месяц окончания года (хотя год всегда начинается с первого числа месяца)

Например.

x = as.Date("2014-08-15")
RoundToQuarterStart(x, yearStarts = "March")
[1] "2014-09-01"

Поскольку в этом примере год начинается 1 марта, тогда Q3 начинается 1 сентября, то есть начинается следующий квартал после указанной даты. (или, что эквивалентно, эта дата относится ко 2 кварталу, который заканчивается 31 августа)

Ответы на вопрос(3)

Ваш ответ на вопрос