首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >月1日、月16日递增半月还款频次指定日期

问月1日、月16日递增半月还款频次指定日期
EN

Stack Overflow用户
提问于 2019-02-27 23:51:49
回答 1查看 53关注 0票数 0

如果我知道对于semi-monthly payment frequency,我应该总是使用每个月的1st和16th,给定第一个日期,我如何增加它?

这就是我到目前为止所知道的:

代码语言:javascript
复制
...
while(cnt.getAndIncrement() <= pmtNumber ) {
   monthdate = incrementDateUsingPaymentFrequency(LocalDate.of(2018, 2, 1), PaymentFrequencyCodeEnum.SEMIMONTHLY);
   //do something with this incremented month
}
...
public static LocalDate incrementDateUsingPaymentFrequency(LocalDate monthDate, PaymentFrequency paymentFrequency){
    LocalDate incrementedDate = null;
    if(paymentFrequency == PaymentFrequency.SEMIMONTHLY){
        incrementedDate = monthDate.plusDays(monthDate.getDayOfMonth() == 1 ? 16 : 0);
    }
    return incrementedDate;
}

我所期待的结果是:

代码语言:javascript
复制
 02/01/2018
 02/16/2018
 03/01/2018
 03/16/2018
 04/01/2018
 04/16/2018
 ...
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-28 00:46:21

因为我们知道semi-monthly只需要使用1st和16th。当日期是当月的日期时,只需添加15 1st即可。When is month (16th),add 1 month to date并返回当月的1st日。

代码语言:javascript
复制
if(paymentFrequency == PaymentFrequency.SEMIMONTHLY){
            incrementedDate = monthDate.getDayOfMonth() == 1 ? monthDate.plusDays(15) : monthDate.plusMonths(1).withDayOfMonth(1);
    }
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54909390

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档