我从网上复制了代码,用于计算两个日期之间的天数。它经常产生不正确的结果。例如,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);
}
}
答案 0 :(得分:0)
结果和好 但是当你在01月设置月份时
`Calendar.Set(2000,1,15)`
这意味着您在2000年2月15日进行了设置 日历上的日历从0开始
0 =是1月 1 = 2月......