Java日历:减去两个日期以获得两者之间的天数差异

时间:2017-04-14 12:46:42

标签: java

我想查看用户登录后的天数:

Calendar lastLogin = Calendar.getInstance();
lastLogin.setTime(randomPlayer.getLastLogin());
Calendar today = Calendar.getInstance();

我如何减去它以获得两者之间的天数差异? I.e自上次登录后的天数。

1 个答案:

答案 0 :(得分:1)

我建议改为使用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());
    }
}