给定一个日期(表示为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〜