我的java有点生疏,已经有一段时间没用了。
我要做的是让用户定义一个日期(包含年,月和日的3个整数)并将其转换为日期对象。
我有一个方法如下,这是我在谷歌搜索后得到的结果
private double getTotalPaymentAmount(int sDay, int sMonth, int sYear, int eDay, int eMonth, int eYear)
{
double total = 0.0;
Iterator it = payments.entrySet().iterator();
while (it.hasNext())
{
Map.Entry pairs = (Map.Entry)it.next();
Payment p = (Payment) pairs.getValue();
Date d = p.getDate();
Calendar myCalendar = Calendar.getInstance();
myCalendar.set(sYear, sMonth, sDay, 0, 0, 1);
Date startDate = myCalendar.getTime();
myCalendar.set(eYear, eMonth, eDay, 0, 0, 1);
Date endDate = myCalendar.getTime();
boolean b = startDate.compareTo(d) * d.compareTo(endDate) > 0;
System.out.println("Start: " + startDate + " -> End: " + endDate);
total = total + p.getAmount() ;
}
return total;
}
并被以下人员调用,此刻正在被打印出来
return " " + getTotalPaymentAmount(2014,1,1,2014,12,31);
问题是日期完全错误。我希望开始日期为2014-01-01,结束日期为2014-12-31,但打印为
开始时间:周六7月07日00:00:01 GMT 6 - >结束:星期六06月06日00:00:01 GMT 37
开始时间:周六7月07日00:00:01 GMT 6 - >结束:星期六06月06日00:00:01 GMT 37
开始时间:周六7月07日00:00:01 GMT 6 - >结束:星期六06月06日00:00:01 GMT 37
答案 0 :(得分:0)
在Sotirios Delimanolis和David Wallace的帮助下修复 我忘记了几个月从0开始而不是1,并且我的参数和参数是错误的方式