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); } }