0

我需要在约束中为信用卡到期年份写一个约束

这是我的限制

static constraints = {
    cardNumber(nullable:false, blank:false, creditCard:true)
    expiryMonth(nullable:false, range:1..12)
    expiryYear(nullable:false, range:(defaultExpiryYear)..(defaultExpiryYear + YEARS_TO_LIST))
}

哪里defaultExpiryYear = Current Year - 2000YEARS_TO_LIST = 10 years

但是,如果年份是2095因为范围将会消失expiryYear(nullable:false, range:95..105) ,但由于expiryYear年份只有 2 位数字,2105它将05失败,这种情况将失败。

如何将其转换为范围内的进入列表?

4

2 回答 2

0

这就是我修复它的方法,如果您有任何其他好的想法,其中 epiryStartYear 和 expiryEndYear 是 4 位数年份 expiryYear(nullable:false, InList:( getExpiryRangeList())),请发表评论

def static private getExpiryRangeList() {
def  yearList = []
(expiryStartYear..expiryEndYear).each {
    yearList << it % 100
}
yearList
}

或者我可以

def static private getExpiryRangeList() {
[expiryStartYear..expiryEndYear].collect(it % 100)
}
于 2013-03-08T19:55:30.513 回答
0

我可能是错的,但从我的角度来看,你不应该担心大约 90 年后的事情。90 年后——谁能保证还有信用卡?如果还有信用卡,他们会有“到期年”吗?如果他们有一个到期日,它是如何计算的?

所以,很抱歉这可能不是您期望的答案,但考虑到过去几年的发展速度,我不会以任何方式担心您的问题;)

于 2013-03-07T21:59:29.487 回答