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