java calendar add()的原理?

时间:2016-02-28 13:20:46

标签: java algorithm date time

给定一个日期(表示为date1),java在函数add()中采用什么算法来计算n天后的日期(表示为date2)?有公式还是O(1)算法?

PS: 我刚刚理解了linux用来计算当前日期(ymd)和参考日期(通常是1970-1-1)之间差距的方法,并且我已经推广了这种方法来计算任意几天之间的差距,正如以下代码所写:

int gapBetween(int y1, int m1, int d1, int y2, int m2, int d2)
{
    m1 -= 2, m2 -= 2;
    if (m1 <= 0)
        m1 += 12, y1--;
    if (m2 <= 0)
        m2 += 12, y2--;

    int p1 = 367 * m1 / 12 - 30 + d1;
    int p2 = (y2 - y1) * 365;
    int p3 = 367 * m2 / 12 - 30 + d2;
    int p4 = (y2 / 4 - y2 / 100 + y2 / 400) - (y1 / 4 - y1 / 100 + y1 / 400);
    return p2 - p1 + p3 + p4;
}

当然,我想知道如果给出一个日期(表示为date1)和一个整数n,是否有类似的方法来计算date1之后n天的日期(表示为date2)?我已经想了一会儿却被卡住了。在互联网上搜索后,我发现java中的类日历中的成员函数add()可以完成这项工作,但我还没有找到关于这个函数的更多细节。谁能告诉我在哪里可以找到相关信息? THKS〜

0 个答案:

没有答案