相关疑难解决方法(0)

Java中两个日期之间的天数差异?

我需要找到两个日期之间的天数:一个来自报告,一个是当前日期.我的片段:

  int age=calculateDifference(agingDate, today);
Run Code Online (Sandbox Code Playgroud)

calculateDifference是一个私有方法,agingDate并且todayDate对象,仅供您澄清.我已经关注了Java论坛中的两篇文章,即Thread 1/Thread 2.

它在独立程序中运行良好,但是当我将其包含在我的逻辑中以从报告中读取时,我会得到一个不寻常的值差异.

为什么会发生这种情况?我该如何解决?

编辑:

与实际天数相比,我获得的天数更多.

public static int calculateDifference(Date a, Date b)
{
    int tempDifference = 0;
    int difference = 0;
    Calendar earlier = Calendar.getInstance();
    Calendar later = Calendar.getInstance();

    if (a.compareTo(b) < 0)
    {
        earlier.setTime(a);
        later.setTime(b);
    }
    else
    {
        earlier.setTime(b);
        later.setTime(a);
    }

    while (earlier.get(Calendar.YEAR) != later.get(Calendar.YEAR))
    {
        tempDifference = 365 * (later.get(Calendar.YEAR) - earlier.get(Calendar.YEAR));
        difference += tempDifference;

        earlier.add(Calendar.DAY_OF_YEAR, tempDifference);
    } …
Run Code Online (Sandbox Code Playgroud)

java datediff jodatime

81
推荐指数
7
解决办法
19万
查看次数

标签 统计

datediff ×1

java ×1

jodatime ×1