Возможно, вам лучше всего нарисовать картинку для этого.
Проблема в основном определяет, существует ли такой N, что N-й день рождения человека лежит в диапазоне или нет.
Вы можете взять базовую линию и рассчитать число дней по модулю, который будет обрабатывать смену года (но високосные годы могут привести к ошибкам типа «один на один»).
Другая альтернатива, которая может сделать более простое представление, состоит в том, что, поскольку дни рождения образуют 1-D сетку в строке календаря, чтобы день рождения НЕ попадал в диапазон, диапазон должен полностью лежать между днями рождения человека в последующие годы : т.е. НЕТ (BirthdayY1
Обычно, когда мы проводили такой анализ, это были целые месяцы, поэтому было гораздо проще найти все дни рождения в мае, например, чтобы получить поздравительные открытки.