2017-04-14 55 views
0

我想看看有多少天以來之間的天數不同,因爲我的用戶登錄:Java日曆:減去兩個Date拿到兩個

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

我將如何減去該得到的差異兩者之間的日子?即自上次登錄以來的天數。

+0

什麼是你用java的vesion? – mir

+0

版本8+,通常是最新版本 –

+0

強烈建議*不要*使用'Calendar'和'Date'類。如果您使用Java 8,請使用'java.time'。如果您使用的是早期版本,請使用Joda-Time。 '日曆'和'日期'是非常重要的,效率低下的課程。 – RealSkeptic

回答

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()); 
    } 
}