出于某种原因,输出的数值约为 16348。当第一个和最后一个日期值分别为 0110 和 0201 时。为什么我没有获得每日值(value)?
import java.util.Scanner;
import java.util.Calendar;
import java.util.Date;
import java.text.SimpleDateFormat;
public class Project3 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String firstDate = input.next(), lastDate = input.next();
try {
Date date1 = new SimpleDateFormat("MMdd").parse(firstDate);
Date date2 = new SimpleDateFormat("MMdd").parse(lastDate);
System.out.println(Project3.days(date1, date2));
} catch (Exception e) {
//
}
}
public static long days(Date startDate, Date endDate) {
Calendar start = Calendar.getInstance();
start.setTime(startDate);
Calendar end = Calendar.getInstance();
long daysBetween = 0;
while(start.before(end)) {
start.add(Calendar.DAY_OF_MONTH, 1);
daysBetween++;
}
return daysBetween;
}
}
最佳答案
您忘记调用Calendar.setTime(Date)
在结束
,
Calendar end = Calendar.getInstance();
end.setTime(endDate); // <-- like so.
关于java - 两个日期之间的天数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26350390/