【发布时间】:2010-11-04 00:28:20
【问题描述】:
我收到了更改请求,但我不确定如何最好地处理它。如果客户搜索某些内容,并且他们指定的年份或年份范围大于我们数据库中的数据,我必须返回与我们拥有的最新年份范围相对应的结果。
目前我们在数据库中的结果都遵循以下模式之一:
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 Onwards,并且存在的最大值将是 2062。
所以基本上,我需要识别客户端何时搜索 [Thing1 (or) Thing2 with a year range],如果第一年的值大于 [今年 + 14] 我必须返回 [今年 + 14],但前提是当前年份是偶数年,否则我必须返回[今年+13]。
我遇到的麻烦是如何识别不遵循明确定义模式的字符串中间的年份,除了年份范围的第一部分以 4 位数年份开头。
对我来说最好的方法是什么?有人可以建议我如何解决这个问题吗?谢谢。
【问题讨论】: