1. 程式人生 > >JAVA 獲取相差天數和獲取一日期相差某天數後的日期(可用於計算各種紀念日)

JAVA 獲取相差天數和獲取一日期相差某天數後的日期(可用於計算各種紀念日)

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

public class DateDiff {

	public static void main(String[] args) throws ParseException {
		// 2014-8-7
		 getDay(args);
		getDate(args);
	}

	// 獲取一日期相差某天數後的日期
	private static void getDate(String[] args) throws ParseException {
		args = new String[] { "2011-11-11", "1000" };
		SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
		Date begin = new Date();
		if (args.length < 2) {
			System.out.println("input begin date and 相差的天數");
			return;
		}
		begin = dateFormat.parse(args[0]);
		int day = Integer.parseInt(args[1]);	
		Calendar c1 = Calendar.getInstance();
		c1.setTime(begin);
		c1.add(Calendar.DAY_OF_YEAR, day);		
		System.out.println(dateFormat.format(c1.getTime()));
		
	}

	// 獲取相差的天數,已經過去多少天
	private static void getDay(String[] args) throws ParseException {
		args = new String[] { "2011-11-11" };
		SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
		Date begin = new Date();
		if (args.length < 1) {
			System.out.println("input begin date");
			return;
		}
		begin = dateFormat.parse(args[0]);

		Date end = new Date();
		if (args.length >= 2) {
			end = dateFormat.parse(args[1]);
		}
		long time = end.getTime() - begin.getTime();
		int day = (int) (time / (24 * 60 * 60 * 1000));
		System.out.println(day);
	}

}