java计算两个日期相差多少天

java计算两个日期相差多少天

 

public class DateUtil{

	public static int betweenDays(Date startDate, Date endDate ) throws Exception {

		Calendar beginCalendar = Calendar.getInstance();

		Calendar endCalendar = Calendar.getInstance() ; 

		

		try {

			beginCalendar.setTime( startDate ) ;

			endCalendar.setTime( endDate ) ;

			

			if (beginCalendar.get(Calendar.YEAR) == endCalendar.get(Calendar.YEAR)) {

				return endCalendar.get(Calendar.DAY_OF_YEAR)

						- beginCalendar.get(Calendar.DAY_OF_YEAR);

			} else {

				if (beginCalendar.getTimeInMillis() < endCalendar.getTimeInMillis()) {

					int days = beginCalendar.getActualMaximum(Calendar.DAY_OF_YEAR)

							- beginCalendar.get(Calendar.DAY_OF_YEAR)

							+ endCalendar.get(Calendar.DAY_OF_YEAR);

					for (int i = beginCalendar.get(Calendar.YEAR) + 1; i < endCalendar

							.get(Calendar.YEAR); i++) {

						Calendar c = Calendar.getInstance();

						c.set(Calendar.YEAR, i);

						days += c.getActualMaximum(Calendar.DAY_OF_YEAR);

					}

					return days;

				} else {

					int days =endCalendar.getActualMaximum(Calendar.DAY_OF_YEAR)

							- endCalendar.get(Calendar.DAY_OF_YEAR)

							+ beginCalendar.get(Calendar.DAY_OF_YEAR);

					for (int i = endCalendar.get(Calendar.YEAR) + 1; i < beginCalendar

							.get(Calendar.YEAR); i++) {

						Calendar c = Calendar.getInstance();

						c.set(Calendar.YEAR, i);

						days += c.getActualMaximum(Calendar.DAY_OF_YEAR);

					}

					return days;

				}

			}

		} catch (Exception e) {

			throw e;

		}

	}

	

}


 

 

你可能感兴趣的:(java)