Команда начинает 5 марта и ставит этап через 30 календарных дней. Формулировка описывает сдвиг: начальная дата — точка отсчёта, а следующий день — первый.

Используйте сдвиг по календарным дням

Выберите сдвиг, прибавление, календарные дни, 5 марта и количество 30. Выходные остаются обычными датами, а API учитывает фактическую длину месяца. Здесь нет приближения «каждый месяц по 30 дней»: используется LocalDate.plusDays.

Результат — 4 апреля

Через один календарный день после 5 марта наступает 6 марта. Продолжая через оставшиеся даты марта и начало апреля, получаем тридцатый день — 4 апреля. Это соответствует прошедшей календарной дистанции. Итог был бы другим для включённого периода из 30 дат начиная с 5 марта.

Запишите «через 30 дней» рядом с датой

В списке этапов сохраняйте рассчитанную дату вместе с правилом. По одной записи «4 апреля» нельзя понять, учитывались ли выходные и входило ли начало. Формулировка в задаче делает изменения проверяемыми. DayCount не хранит историю проекта или расчёта.