用Date 类 计算商品促销日期

package Date;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

/**
 * 计算商品促销日期
 * 程序启动后,要求输入某商品的生产日期以及保值期的天数
 * 然后经过计算输出促销日期。
 * 促销日期的定义为:商品过期日期前2周的周三。
 * 例如:
 * 生产日期为2018-01-29
 * 保值期14天
 * 那么促销日应当为2018-01-31
 *
 */

public class Test2 {
	public static void main(String[] args) throws ParseException, IOException {
		BufferedReader br =new BufferedReader(new InputStreamReader(System.in));
		
		System.out.println("请输入生产日期:");
		String datestr =br.readLine();
		System.out.println("请输入保值期的天数:");
		int days =Integer.parseInt(br.readLine());
		SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd");
		Date date =sdf.parse(datestr);
		Calendar calendar = Calendar.getInstance();
		calendar.setTime(date);
		//计算过期日
		calendar.add(Calendar.DAY_OF_YEAR, days);
		//计算前2周
		calendar.add(Calendar.DAY_OF_YEAR, -14);
		//设置为当周的周三
		calendar.set(Calendar.DAY_OF_WEEK, Calendar.WEDNESDAY);
		//转换回Date
		date=calendar.getTime();
		//转换为字符串
		String line =sdf.format(date);
		System.out.println("促销日为:"+line);
	}
}

  

原文地址:https://www.cnblogs.com/xyk1987/p/8378813.html