java指定某一日期,加上或減去指定的天數得到新的日期

package app;

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

/**
 * @author Rock
 */
public class Test {
	public static void main(String[] args) throws ParseException {
		Scanner sc = new Scanner(System.in); 
        System.out.println("請輸入指定日期(格式20180117):"); 
        String dates = sc.nextLine(); 
        System.out.println("請輸入指定天數:"); 
        String day = sc.nextLine(); 
        getDate(dates, day);
	}
	
	public static String getDate(String dates,String day) {
		SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd"); // 日期格式
		Date date = null;
		Date newDate = null;
		try {
			date = dateFormat.parse(dates); // 指定日期
			newDate = addDate(date, Integer.valueOf(day)); // 指定日期天數
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} 
		System.out.println(dateFormat.format(date));// 輸出格式化後的日期
		System.out.println(dateFormat.format(newDate));
		return dateFormat.format(newDate);
	}

	public static Date addDate(Date date, long day) throws ParseException {
		long time = date.getTime(); // 得到指定日期的毫秒數
		day = day * 24 * 60 * 60 * 1000; // 要加上的天數轉換成毫秒數
		time += day; // 相加得到新的毫秒數
		// time -= day; // 相減得到新的毫秒數
		return new Date(time); // 將毫秒數轉換成日期
	}
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章