金融系统中的还款日计算(自用虽然比较low)
2017-06-20 18:03
357 查看
package com.meloinfo.kx.api.ws.ctl.utils; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /** * Created by Administrator on 2017/4/24. */ public class DueDate { //计算每月还款日 public int getmonthday(Date nowdate){ Date date=nowdate; Calendar calendar = Calendar.getInstance(); calendar.setTime(date); /** 计算还款日 还款日规则: 1、每月1-5号审核通过的还款日为次月1号; 2、每月6-10号审核通过的还款日为次月6号; 3、每月11-15号审核通过的还款日为次月11号; 4、每月16-20号审核通过的还款日为次月16号; 5、每月21-25号审核通过的还款日为次月21号; 6、每月26-31号审核通过的还款日为次月26号; 当 根据 还款日规则 来 更改每月还款日 */ //得到当前的日期 int nowday=calendar.get(calendar.DAY_OF_MONTH); int mothday=0; if(1<=nowday&&nowday<=5){ calendar.set(calendar.DAY_OF_MONTH,1); }else if(6<=nowday&&nowday<=10){ calendar.set(calendar.DAY_OF_MONTH,6); }else if(11<=nowday&&nowday<=15){ calendar.set(calendar.DAY_OF_MONTH,11); }else if(16<=nowday&&nowday<=20){ calendar.set(calendar.DAY_OF_MONTH,16); }else if(21<=nowday&&nowday<=25){ calendar.set(calendar.DAY_OF_MONTH,21); }else if(26<=nowday&&nowday<=31){ calendar.set(calendar.DAY_OF_MONTH,26); } mothday=calendar.get(calendar.DAY_OF_MONTH); return mothday; } //计算首次还款日 public Date getfirstday(Date nowtime){ Date date=nowtime; Calendar calendar = Calendar.getInstance(); calendar.setTime(date); /** 计算还款日 还款日规则: 1、每月1-5号审核通过的还款日为次月1号; 2、每月6-10号审核通过的还款日为次月6号; 3、每月11-15号审核通过的还款日为次月11号; 4、每月16-20号审核通过的还款日为次月16号; 5、每月21-25号审核通过的还款日为次月21号; 6、每月26-31号审核通过的还款日为次月26号; 当 根据 还款日规则 来 更改每月还款日 */ //得到当前的日期 int nowday=calendar.get(calendar.DAY_OF_MONTH); int mothday=0; if(1<=nowday&&nowday<=5){ calendar.set(calendar.DAY_OF_MONTH,1); }else if(6<=nowday&&nowday<=10){ calendar.set(calendar.DAY_OF_MONTH,6); }else if(11<=nowday&&nowday<=15){ calendar.set(calendar.DAY_OF_MONTH,11); }else if(16<=nowday&&nowday<=20){ calendar.set(calendar.DAY_OF_MONTH,16); }else if(21<=nowday&&nowday<=25){ calendar.set(calendar.DAY_OF_MONTH,21); }else if(26<=nowday&&nowday<=31){ calendar.set(calendar.DAY_OF_MONTH,26); } mothday=calendar.get(calendar.DAY_OF_MONTH); calendar.add(Calendar.MONTH,1); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); calendar.set(Calendar.DATE,mothday-1); calendar.set(Calendar.HOUR, 12); calendar.set(Calendar.MINUTE, 0); calendar.set(Calendar.SECOND, 0); return calendar.getTime(); } //计算最后还款日 public Date getlastday(Date nowtime,int stagenum){ Date date=nowtime; Calendar calendar = Calendar.getInstance(); calendar.setTime(date); /** 计算还款日 还款日规则: 1、每月1-5号审核通过的还款日为次月1号; 2、每月6-10号审核通过的还款日为次月6号; 3、每月11-15号审核通过的还款日为次月11号; 4、每月16-20号审核通过的还款日为次月16号; 5、每月21-25号审核通过的还款日为次月21号; 6、每月26-31号审核通过的还款日为次月26号; 当 根据 还款日规则 来 更改每月还款日 */ //得到当前的日期 int nowday=calendar.get(calendar.DAY_OF_MONTH); int mothday=0; if(1<=nowday&&nowday<=5){ calendar.set(calendar.DAY_OF_MONTH,1); }else if(6<=nowday&&nowday<=10){ calendar.set(calendar.DAY_OF_MONTH,6); }else if(11<=nowday&&nowday<=15){ calendar.set(calendar.DAY_OF_MONTH,11); }else if(16<=nowday&&nowday<=20){ calendar.set(calendar.DAY_OF_MONTH,16); }else if(21<=nowday&&nowday<=25){ calendar.set(calendar.DAY_OF_MONTH,21); }else if(26<=nowday&&nowday<=31){ calendar.set(calendar.DAY_OF_MONTH,26); } mothday=calendar.get(calendar.DAY_OF_MONTH); calendar.set(Calendar.MONTH, Calendar.MONTH+stagenum+1); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); calendar.set(Calendar.DATE,mothday-1); calendar.set(Calendar.HOUR, 12); calendar.set(Calendar.MINUTE, 0); calendar.set(Calendar.SECOND, 0); return calendar.getTime(); } /** * 计算时间间隔月数 */ public int getallmonth(Date nowtime,String time) throws ParseException { Date date=new Date(); Calendar calendar = Calendar.getInstance(); calendar.setTime(date); int nowyear=calendar.get(Calendar.YEAR);; int nowmonth=calendar.get(Calendar.MONTH)+1; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date dates=sdf.parse(time); Calendar calendars = Calendar.getInstance(); calendars.setTime(dates); int year=calendars.get(Calendar.YEAR); int months=calendars.get(Calendar.MONTH)+1; int allmonth=(nowyear-year)*12+(nowmonth-months); return allmonth; } }
相关文章推荐
- 关于收到部分还款SAP系统两种处理方法的说明和比较
- 五种气体灭火系统计算结果比较
- 开源分布式计算系统框架比较
- (蓝桥杯模拟)1.算年龄 & 4.字符串比较(填空) & 5.还款计算
- 各地图gps坐标系统比较与转换以及经纬度距离计算MATLAB脚本
- JS获取系统时间、计算两个日期天数、比较日期大小
- JS获取系统时间、计算两个日期天数、比较日期大小
- 开源分布式计算系统框架比较
- (部分清帐)关于收到部分还款SAP系统两种处理方法的说明和比较-转
- 开源分布式计算系统框架比较
- 金融系统中正确的金额计算及存储方式
- 金融领域UNIX网络系统的安全管理策略
- 国内CMS系统的比较和汇总
- 系统进程让你明明白白(比较全面的)(转)
- ASP中最好的CMS系统的比较和汇总
- [参考]山东大学高性能计算系统
- PHP在Windows系统下的考虑比较全面的问题!
- ASP中最好的CMS系统的比较和汇总
- Eval.cs的改进版 动态编译类,可以计算表达式,也可以调用系统中的类