Только что появился какой-то странный бизнес-запрос. У нас есть контракты на несколько лет. Система поддерживает дату окончания контракта. Я должен определить ту же календарную дату конечной даты, но для текущего года, если он не прошел в этом году, или в следующем году, если он прошел в этом году.
Например, по состоянию на сегодня, 2020 -01-23:
Случай 1:
Ввод: Дата окончания контракта 2022-07-01
Ожидаемый результат: 2020-07-01 (потому что 2020-07-01 еще не прошел)
Случай 2:
Ввод: Дата окончания контракта 2022-01 -05
Ожидаемый результат: 2021-01-05 (потому что 2020-01-05 уже пройден)
Я никогда не публиковал вопрос по SO без некоторых код "что вы пробовали до сих пор", но я в полном недоумении. Я полагаю, что мог бы манипулировать датами, и делать несколько прикольных вещей, чтобы узнать, прошла ли дата, и так далее, c. Но над этим требованием кто-либо когда-либо работал, или для вызова? :-) Даже руководство не кодекс поможет. Затем я мог бы отредактировать вопрос с помощью того, что я придумаю.
РЕДАКТИРОВАТЬ:
Перефразируя вопрос другим способом, учитывая будущую дату, как я могу определить следующее возникновение тот день / месяц этой будущей даты, исходя из «сегодня».
В 2020-01-23, взять 2022-07-01 и добраться до 2020-07-01 (следующее вхождение 1 июля)
2020-01-23, взять 2024-01-05 и добраться до 2021-01-05 (следующее вхождение 5 января)