Я получил запрос на изменение, и я не уверен, как лучше к нему подойти.Если клиент ищет что-то, и он указывает диапазон года или года, который больше, чем у нас в нашей базе данных, я должен вернуть результат, который соответствует последнему диапазону года, который у нас есть.
В настоящее время результаты мыв базе данных все следуют одному из следующих шаблонов:
Thing1 Thing2 S1 // There's some results with no year
Thing1 Thing2 2006-07 Series 6 // there's some results with 'Series X'
Thing1 Thing2 2006-2007 S12 RP // some resuls have SN or SN YZ
Thing1 Thing2 2020-21 S6 // some results don't have a full second year
Thing1 Thing2 2022-2024 S12
Thing1 Thing2 2024 Onwards // the result that matches the final year just has the year & 'Onwards'
В мире доступно больше результатов для Thing1 Thing2, вплоть до 2060 года, но мы сохраняем данные только на +14 лет, потому чточерез 14 лет (скажем, 2026 или 2028) данные точно такие же, как и в предыдущие годы.
Максимальный год, который мы имеем, и максимальный год существования увеличивается на 2 года каждые 2 года.Таким образом, в 2012 году у нас будет Thing1 Thing2 до 2026 года, и максимум в существовании будет 2062.
Итак, в основном мне нужно определить, когда клиент ищет [Thing1 (или) Thing2 с диапазоном года], и если значение первого года больше, чем [в этом году + 14], я должен вернуть [в этом году + 14], но только если текущий год является четным, в противном случае я должен вернуться [в этом году + 13].
Проблема, с которой я столкнулся, заключается в том, как определить год в середине строки, которая не следует четко определенной схеме, за исключением того, что первая часть диапазона года начинается с четырехзначного года..
Какой лучший способ для меня это сделать?Может ли кто-нибудь подсказать, как я мог бы подойти к решению этой проблемы?Спасибо.