我建議使用LocalDate
代替:
import java.time.LocalDate;
import java.time.temporal.ChronoUnit;
public class DaysBetween {
public static void main(String[] args) {
LocalDate lastLogin = LocalDate.of(2017, 4, 1);
LocalDate today = LocalDate.now();
System.out.println(daysBetween(lastLogin, today));
}
private static long daysBetween(LocalDate from, LocalDate to) {
return ChronoUnit.DAYS.between(from, to);
}
}
或者,如果你真的要堅持Calendar
:
import java.time.temporal.ChronoUnit;
import java.util.Calendar;
public class DaysBetween {
public static void main(String[] args) {
Calendar lastLogin = Calendar.getInstance();
lastLogin.set(Calendar.YEAR, 2017);
lastLogin.set(Calendar.MONTH, 3);
lastLogin.set(Calendar.DAY_OF_MONTH, 1);
Calendar today = Calendar.getInstance();
System.out.println(daysBetween(lastLogin, today));
}
private static long daysBetween(Calendar from, Calendar to) {
return ChronoUnit.DAYS.between(from.toInstant(), to.toInstant());
}
}
什麼是你用java的vesion? – mir
版本8+,通常是最新版本 –
強烈建議*不要*使用'Calendar'和'Date'類。如果您使用Java 8,請使用'java.time'。如果您使用的是早期版本,請使用Joda-Time。 '日曆'和'日期'是非常重要的,效率低下的課程。 – RealSkeptic