import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;
/**
* 计算2个日期之间的相差天数
*/
public class CountTimeDiff {
public static void main(String[] args) {
try {
// 日期格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date smallDate = sdf.parse("2013-04-30");
Date bigDate = sdf.parse("2013-05-01");
System.out.println(daysBetween(smallDate, bigDate));
// 字符串格式
System.out.println(daysBetween("2012-02-09", "2013-05-09"));
} catch (ParseException e) {
e.printStackTrace();
}
}
/**
* 计算2个日期之间相差的天数
*
* @param smallDate
* 较小的日期
* @param bigDate
* 较大的日期
* @return 相差天数
* @throws ParseException
*/
public static int daysBetween(Date smallDate, Date bigDate)
throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
smallDate = sdf.parse(sdf.format(smallDate));
bigDate = sdf.parse(sdf.format(bigDate));
Calendar calendar = Calendar.getInstance(Locale.CHINA);
calendar.setTime(smallDate);
long smallDateTime = calendar.getTimeInMillis();
calendar.setTime(bigDate);
long bigDateTime = calendar.getTimeInMillis();
long betweenDays = (bigDateTime - smallDateTime) / (1000 * 3600 * 24);
return Integer.parseInt(String.valueOf(betweenDays));
}
/**
*
* @param smallDate
* 较小的日期
* @param bigDate
* 较大的日期
* @return 相差天数
* @throws ParseException
*/
public static int daysBetween(String smallDate, String bigDate)
throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar calendar = Calendar.getInstance(Locale.CHINA);
calendar.setTime(sdf.parse(smallDate));
long smallDateTime = calendar.getTimeInMillis();
calendar.setTime(sdf.parse(bigDate));
long bigDateTime = calendar.getTimeInMillis();
long betweenDays = (bigDateTime - smallDateTime) / (1000 * 3600 * 24);
return Integer.parseInt(String.valueOf(betweenDays));
}
}