Команда начинает 5 марта и ставит этап через 30 календарных дней. Формулировка описывает сдвиг: начальная дата — точка отсчёта, а следующий день — первый.
Используйте сдвиг по календарным дням
Выберите сдвиг, прибавление, календарные дни, 5 марта и количество 30. Выходные остаются обычными датами, а API учитывает фактическую длину месяца. Здесь нет приближения «каждый месяц по 30 дней»: используется LocalDate.plusDays.
Результат — 4 апреля
Через один календарный день после 5 марта наступает 6 марта. Продолжая через оставшиеся даты марта и начало апреля, получаем тридцатый день — 4 апреля. Это соответствует прошедшей календарной дистанции. Итог был бы другим для включённого периода из 30 дат начиная с 5 марта.
Запишите «через 30 дней» рядом с датой
В списке этапов сохраняйте рассчитанную дату вместе с правилом. По одной записи «4 апреля» нельзя понять, учитывались ли выходные и входило ли начало. Формулировка в задаче делает изменения проверяемыми. DayCount не хранит историю проекта или расчёта.