JAvaDateクラスは2つの時間の間の日数を計算します


import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

/**
 *        1949-10-1  ---  2016-8-15      。
 *         :
 *        Calendar      
 *          1,       
 *          2,        
 *        :
 *          1,  SimpleDateFormat       
 *          2,Date         ,   Calendar    
 *          3,Calendar  get            ,  :DAY_OF_YEAR            
 *          4,             
 *          5,            366      365 
 *          6,                    。
 *
 *         :
 *      Date  gettime          long  (    )
 *        :
 *          1,         long 。
 *          2,  long   。
 *          3,           。
 *
 */

public class DateTest {
    public static void main(String[] args) {
        String dateStr1 = "1949-10-01";
        String dateStr2 = "2016-08-15";
        SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd");
        SimpleDateFormat format2 = new SimpleDateFormat("yyyy-MM-dd");
        try {
            Date date1 = format1.parse(dateStr1);
            Date date2 = format2.parse(dateStr2);

            System.out.println("1949 10 1  2016 8 15    :"+differentDays(date1,date2)+" !");
           System.out.println(differentDayMillisecond(date1,date2));
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }
    public static int differentDays(Date date1,Date date2){
        Calendar calendar1 = Calendar.getInstance();
        calendar1.setTime(date1);
        Calendar calendar2 = Calendar.getInstance();
        calendar2.setTime(date2);

        int day1 = calendar1.get(Calendar.DAY_OF_YEAR);
//        System.out.println(day1);
        int day2 = calendar2.get(Calendar.DAY_OF_YEAR);
//        System.out.println(day2);
        int year1 = calendar1.get(Calendar.YEAR);
        int year2 = calendar2.get(Calendar.YEAR);

        if (year1 != year2)  //   
        {
            int timeDistance = 0;
            for (int i = year1 ; i < year2 ;i++){ //  
                if (i%4==0 && i%100!=0||i%400==0){
                    timeDistance += 366;
                }else { //     
                    timeDistance += 365;
                }
            }
            return  timeDistance + (day2-day1);
        }else{//   
            return day2-day1;
        }

    }

    public  static int differentDayMillisecond (Date date1,Date date2)
    {


        int day = (int)((date2.getTime()-date1.getTime())/(3600*1000*24));
        return day;
    }
}