Java Calendar类

时间:2017-10-15 12:28:29

标签: java

我从网上复制了代码,用于计算两个日期之间的天数。它经常产生不正确的结果。例如,2008年1月15日到2010年3月15日之间的日期是790.代码返回789. 2013年12月30日到02/28/2017之间的日期是1156.代码返回1152.是错误由于代码或日历类?我正在复制下面的代码。这是我的第一篇文章,我为任何协议错误道歉。 谢谢, 尼克

import java.util.Calendar;

public class DateExperiment2 
{ 
  public static void main(String args[]) throws Exception
  {
    // Create Calendar instances
    Calendar calendar1 = Calendar.getInstance();
    Calendar calendar2 = Calendar.getInstance();

    // Set the values for the calendar fields YEAR, MONTH, and DAY_OF_MONTH.
    calendar1.set(2008, 1, 15);
    calendar2.set(2010, 3, 15);

    //Get Calendars' time value in milliseconds
    long miliSecondForDate1 = calendar1.getTimeInMillis();
    long miliSecondForDate2 = calendar2.getTimeInMillis();

    // Calculate the difference in millisecond between two dates
    long diffInMilis = miliSecondForDate1 - miliSecondForDate2;

   //Convert milliseconds to days
    long diffInDays = diffInMilis / (24 * 60 * 60 * 1000);

    System.out.println(diffInDays);
  }
}

1 个答案:

答案 0 :(得分:0)

结果和好 但是当你在01月设置月份时

`Calendar.Set(2000,1,15)`

这意味着您在2000年2月15日进行了设置 日历上的日历从0开始

0 =是1月 1 = 2月......