老百姓需求:
1.输入总金额要摊销金额到每个月.
2.五月及之前的金额合并,五月之后每月显示,多出来的金额加到最后一月.
package com.cs.lbx;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.util.Calendar;
import java.util.Scanner;
public class test {
public static void main(String[] args) {
System.out.println("输入起始月数:");
Scanner First = new Scanner(System.in);
int f = First.nextInt();
System.out.println("输入结束月数:");
Scanner Last = new Scanner(System.in);
int l = Last.nextInt();
System.out.println("输入总金额:");
Scanner zje = new Scanner(System.in);
double z = zje.nextDouble();
Calendar cal = Calendar.getInstance();//获取当前月份
int month = cal.get(Calendar.MONTH) + 1;
double je1=0.0;
//平均值
BigDecimal bd = new BigDecimal(z / (l - f + 1));//保留四位小数
bd = bd.setScale(4, BigDecimal.ROUND_HALF_UP);
System.out.printf("avg:");
System.out.println(bd.doubleValue());
double avg = bd.doubleValue();
//当前月及之前金额
double je = 0;
if (l <= month) {
je = z;
je1 = z - je;
} else {
je = (month - f + 1) * avg;
je1 = z - je;
}
if(l>month&&f>month){
je=0;
je1=z;
}
System.out.println("五月之前:" + je);
//当前月之后金额
BigDecimal je2 = new BigDecimal(je1);
je2 = je2.setScale(4, BigDecimal.ROUND_HALF_UP);
System.out.println("5月之后:" + je2);
try {
double v = je1 / (l - month);//5月后平均金额
BigDecimal q = new BigDecimal(v);//保留四位小数
q = q.setScale(4, BigDecimal.ROUND_HALF_UP);
double v1 = q.doubleValue();
// System.out.println("五月之后平均金额:" + v1);
// System.out.println("最后一月金额:");
// System.out.println(je2.doubleValue() - v1 * (l - month - 1));
if (l > month&&f<=month) {
for (int i = month+1; i<l; i++) {
System.out.println(i+"月金额:"+v1);
}
System.out.print(l+"月金额:");
BigDecimal w=new BigDecimal(je2.doubleValue() - v1 * (l - month - 1));
w=w.setScale(4,BigDecimal.ROUND_HALF_UP);
System.out.println(w.doubleValue());
}
if (l>month&&f>month){
BigDecimal w2=new BigDecimal(z/(l-f+1));
w2=w2.setScale(4,BigDecimal.ROUND_HALF_UP);
for (int j=f;j<l;j++){
System.out.println(j+"月金额:"+w2.doubleValue());
}
System.out.print(l+"月金额:");
BigDecimal w3=new BigDecimal(z-w2.doubleValue()*(l-f));
w3=w3.setScale(4,BigDecimal.ROUND_HALF_UP);
System.out.println(w3.doubleValue());
}
}catch (NumberFormatException e){
}
}
}
//2到3月问题
//5月之后金额除不尽要补到最后一月 je1-avg*(l-month)
922

被折叠的 条评论
为什么被折叠?



