我的java有点生疏,很久没有使用它了。
我要做的是让用户定义一个日期(包含年份、月和日的3个ints ),并将其转换为date对象。
我有一个方法如下所示,这就是我在google搜索之后得到的结果
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,但打印为
起点:星期六8月07 : 00:00:01格林尼治时间6 ->结束:星期六7月06 : 00:00:01格林尼治时间37 起点:星期六8月07 : 00:00:01格林尼治时间6 ->结束:星期六7月06 : 00:00:01格林尼治时间37 起点:星期六8月07 : 00:00:01格林尼治时间6 ->结束:星期六7月06 : 00:00:01格林尼治时间37
发布于 2014-04-23 12:12:13
修正了在索蒂里奥斯·德里曼奥利奥利和大卫·华莱士的帮助下,我忘记了从0开始的几个月,而不是1,而且我有错误的参数和论点。
https://stackoverflow.com/questions/23000589
复制相似问题