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

ただし、このケースは、年が範囲になるため失敗しますが、年は22095expiryYear(nullable:false, range:95..105) しかexpiryYearないため、失敗します。210505

範囲のインリストで取得するように変換するにはどうすればよいですか?

4

2 に答える 2

0

私が間違っているかもしれませんが、私の観点からすると、約 90 年後のことについて心配する必要はありません。90年後 - クレジットカードがまだ存在することを誰が保証できますか? クレジットカードがまだある場合、「有効期限」はありますか? 有効期限がある場合、それはどのように計算されますか?

申し訳ありませんが、これはあなたが期待した答えではないかもしれませんが、過去数年間の開発の速さを考えると、あなたの問題についてはまったく心配していません ;)

于 2013-03-07T21:59:29.487 に答える
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 に答える