首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >试图创建日期返回错误的值

试图创建日期返回错误的值
EN

Stack Overflow用户
提问于 2014-04-10 22:59:24
回答 1查看 48关注 0票数 0

我的java有点生疏,很久没有使用它了。

我要做的是让用户定义一个日期(包含年份、月和日的3个ints ),并将其转换为date对象。

我有一个方法如下所示,这就是我在google搜索之后得到的结果

代码语言:javascript
复制
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;
}

它是由以下内容调用的,目前正在打印出来。

代码语言:javascript
复制
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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-23 12:12:13

修正了在索蒂里奥斯·德里曼奥利奥利和大卫·华莱士的帮助下,我忘记了从0开始的几个月,而不是1,而且我有错误的参数和论点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23000589

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档