1. 程式人生 > >java對日期時間的增減

java對日期時間的增減

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

public class Util {
	static SimpleDateFormat sdf = new SimpleDateFormat("YYYY-mm-dd");
	/**
	 * Java Calender類獲得指定日期加幾天
	 * 
	 * @param specifiedDay
	 * @param d  day
	 * @return
	 */
	public static String getSpecifiedDayAfter(String specified,int d) {
		Calendar c = Calendar.getInstance();
		Date date = null;
		try {
			date = new SimpleDateFormat("yy-MM-dd").parse(specified);
		} catch (ParseException e) {
			e.printStackTrace();
		}
		c.setTime(date);
		int day = c.get(Calendar.DATE);
		c.set(Calendar.DATE, day + d);
		String dayAfter = new SimpleDateFormat("yyyy-MM-dd").format(c.getTime());
		return dayAfter;
	}
	/**
	 * Java Calender類獲得指定日期加N月
	 * 
	 * @param specifiedDay
	 * @return
	 */
	public static String getSpecifiedMonthAfter(String specified,int month) {
		Calendar c = Calendar.getInstance();
		Date date = null;
		try {
			date = new SimpleDateFormat("yy-MM-dd").parse(specified);
		} catch (ParseException e) {
			e.printStackTrace();
		}
		c.setTime(date);
		c.add(Calendar.MONTH,month); 
//		int day = c.get(Calendar.DATE);
//		c.set(Calendar.DATE, day - 1);
		String dayAfter = new SimpleDateFormat("yyyy-MM-dd").format(c.getTime());
		return dayAfter;
	}
	/**
	 * 比較兩個時間的大小
	 * @param DATE1
	 * @param DATE2
	 * @return
	 */
	 public static int compare_date(String DATE1, String DATE2) {
		 int a = 0;
	        try {
	            Date dt1 = sdf.parse(DATE1);
	            Date dt2 = sdf.parse(DATE2);
	            if (dt1.getTime() > dt2.getTime()) {
	                //System.out.println("dt1 在dt2前");
	                a = 1;
	            } else if (dt1.getTime() < dt2.getTime()) {
	                //System.out.println("dt1在dt2後");
	                a = 2;
	            }else{
	            	System.out.println("兩個時間相等");
	            	a = 0;
	            }
	        } catch (Exception exception) {
	            exception.printStackTrace();
	        }
	        return a;
	    }
}