final float MAX_DRAW_MONEY = 2500.0f;
float poundage = 5.0f;//对于信息卡取现金的话,每笔是5.0元
float day_interest_rate = 0.0005f;//每天利率
int flag = 0;//银行存在最大取款金额数,产生取款笔数
float sum;//利息之和
float totalSum;
int days;
/**
* 第一种还款方式
*/
public float oneInterest(int startMonth,int endMonth,float amount){
if(sum != 0.0) sum = 0.0f;
totalSum = amount;
days = getDays(startMonth+1,endMonth);
System.out.println(days);
for(int i = 1;i <= days ;i++){
totalSum += totalSum * day_interest_rate;
}
return totalSum-amount;
}
public int getDays(int startMonth,int endMonth){
Calendar c1 = this.calendar(startMonth);
Calendar c2 = this.calendar(endMonth);
int day = 0;
for(;c1.before(c2);c1.add(Calendar.DAY_OF_YEAR, 1)){
day++;
}
return day;
}
public Calendar calendar(int monthValue){
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.MONTH, monthValue -1);
calendar.set(Calendar.DAY_OF_MONTH, 1);
return calendar;
}
/***==================上面第一种还款方式(刷卡)==========================***/
/**
* 第二种还款方式(直接取现金还款)一般银行信用卡从你取现金开始记录到还款期为止,并且所需还款=利息+有几笔取款手续费
*/
public float twoInterest(int startMonth,int endMonth,float amount){
if(sum != 0.0) sum = 0.0f;
totalSum = amount;
days = getDays(startMonth,endMonth);
for(int i = 1;i <= days ;i++){
totalSum += totalSum * day_interest_rate;
}
flag = Math.round(amount/MAX_DRAW_MONEY);
return totalSum-amount+flag*poundage;
}
public static void main(String[] args) {
Count count = new Count();
System.out.println("第一种:"+count.oneInterest(4, 11, 4000));
System.out.println("第一种:"+count.twoInterest(4, 11, 4000));
}