信用卡还款日逻辑
信用卡账单计入原则为:在账单日之前的消费,那么在账单日之后的还款日还,在账单日之后的消费,在下个账单日之后的还款日还款。
/**
* 通过信用卡账单日,还款日,消费日计算还款日期。
* @param billing 账单日
* @param repayment 还款日
* @param day 消费日
* @return
*/
public Date calRepaymentDate(Integer billing,Integer repayment,Integer day,Date date){
if (date == null) {
date = new Date();
}
Date payDate = dateUtilService.setDateWithNumber('d',date,repayment);
if ( billing < repayment){
// 账单日在前,还款日在后,当月内。
// 超过账单日,那么就在下月的还款日还。
if (day > billing){
// 还款日
payDate = dateUtilService.dateAddNumber('m',payDate,1);
}
} else {
// 账单日在后,还款日在前,当月内
// 超过账单日,那么就在下下月的还款日还。
payDate = dateUtilService.dateAddNumber('m',payDate,1);
if (day > billing){
// 还款日
payDate = dateUtilService.dateAddNumber('m',payDate,1);
}
}
return payDate;
}