计算食品保质期的前一个星期日,以便做促销的方法(SimpleDateFormat,Calendar等)实现

 1 import java.text.ParseException;
2 import java.text.SimpleDateFormat;
3 import java.util.Calendar;
4 import java.util.Date;
5 import java.util.GregorianCalendar;
6 import java.util.Scanner;
7
8 public class CalDemo {
9
10 /**
11 * @param args
12 * @throws ParseException
13 */
14 public static void main(String[] args) throws Exception {
15 Scanner s=new Scanner(System.in);
16 String str = s.nextLine();//2010-12-1
17 SimpleDateFormat fmt =
18 new SimpleDateFormat("yyyy-MM-dd");
19 //解析字符串日期到Date类型
20 Date d = fmt.parse(str);//str -> Date
21 //计算促销日期
22 Date date = expDate(d, 3);
23 //格式化并输出日期.
24 String exp = fmt.format(date);
25 System.out.println("促销日期:" + exp);
26 }
27 /**
28 * @param create 生产日期
29 * @param months 过去月份数量
30 * @return 促销日期
31 */
32 public static Date expDate(Date create,int months){
33 Calendar cal =
34 new GregorianCalendar();
35 cal.setTime(create);//生产日期
36 cal.add(Calendar.MONTH, months);//计算过期日期
37 cal.add(Calendar.WEEK_OF_YEAR, -1);//提前一周促销
38 cal.set(Calendar.DAY_OF_WEEK,
39 Calendar.SUNDAY);//更新到过期日期前周日
40 //cal.set(Calendar.DAY_OF_YEAR, 0);//一年的第一天
41 return cal.getTime();
42 }
43 }

原文地址:https://www.cnblogs.com/superjt/p/2117932.html