DateUtils

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

public class DateUtils{
	/**
	* 
	* @description   String转date,传入的String格式需要是:yyyy-MM-dd HH:mm:ss
	* @param str
	* @return
	* @throws Exception
	*/
	public static Date stringToDate(String str) throws Exception{
		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		Date date= format.parse(str);
		System.out.println(date);
		return date;
	}
	 
	 
	/**
	* 
	* @description  date转String,转换后的String格式是:yyyy-MM-dd HH:mm:ss
	* @param date
	* @return
	*/
	public static String dateToString(Date date){
		Calendar calendar = Calendar.getInstance();
		Date time = calendar.getTime();
		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
		String strDate = format.format(time);
		System.out.println(strDate);
		return strDate;
	}
	 
	 
	/**
	* 
	* @description  计算两个日期之间相差的天数
	* @param startDate
	* @param endDate
	* @return
	*/
	public static int daysBetweenTowDates(Date startDate,Date endDate){
		Calendar calendar = Calendar.getInstance();
		calendar.setTime(startDate);
		long timeStart = calendar.getTime().getTime();
		calendar.setTime(endDate);
		long timeEnd = calendar.getTime().getTime();
		int days = (int)(timeEnd / 1000 - timeStart / 1000)/3600/24;
		System.out.println(Math.abs(days));
		return Math.abs(days);
	}
	 
	 
	 
	/**
	* 
	* @description  计算两日期之间相差的年数
	* @param startDate
	* @param endDate
	* @return
	*/
	public static int yearsBetweenTowDates(Date startDate, Date endDate){
		Calendar calendar = Calendar.getInstance();
		calendar.setTime(startDate);
		int startYear = calendar.get(Calendar.YEAR);
		calendar.setTime(endDate);
		int endYear = calendar.get(Calendar.YEAR);
		System.out.println(endYear - startYear);
		return endYear - startYear;
	}
	 
	/**
	 * get age by birthday
	 * @description  
	 * @param birthday  you birthday
	 * @param nowDate   today date
	 * @return
	 */
	public static  int calculateAge(Date birthday,Date nowDate) {
		Calendar cal = Calendar.getInstance();
		
		cal.setTime(nowDate);
		int yearNow = cal.get(Calendar.YEAR);
		int monthNow = cal.get(Calendar.MONTH) + 1;
		int dayOfMonthNow = cal.get(Calendar.DAY_OF_MONTH);
		
		
		cal.setTime(birthday);
		int yearBirth = cal.get(Calendar.YEAR);
		int monthBirth = cal.get(Calendar.MONTH) + 1;
		int dayOfMonthBirth = cal.get(Calendar.DAY_OF_MONTH);
		
		if(yearNow == yearBirth && monthNow == monthBirth && dayOfMonthNow == dayOfMonthBirth){ //birthday is today
			return 0;
		}else{
			Calendar birthdayCal = Calendar.getInstance();
			birthdayCal.setTime(birthday);
			if ( cal.before(birthdayCal) ) {
				throw new IllegalArgumentException(
						"The birthDay is before Now.It's unbelievable!");
			}
			int age = yearNow - yearBirth;

			if (monthNow <= monthBirth) {
				if (monthNow == monthBirth) {
					if (dayOfMonthNow < dayOfMonthBirth) {
						age--;
					}
				} else {
					age--;
				}
			}
			return age;
			
		}
		
	}
	 
 
}

猜你喜欢

转载自1960370817.iteye.com/blog/2316330