#一道题
package 作业包;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;
public class Zuoye {
// 输入日期格式字符串作为商品的生产日期,输入保质期(天);计算截止到今天,该商品还有多少天会过保质期
// 1、控制台输入字符串转为日期格式
// 2、将输入日期增加保质期天数
// 3、取得当前系统日期,比较两个日期,如果过期输出“该商品已经过期”
// 4、如果没有过期输出天数
public static void main(String[] args) throws ParseException {
Scanner input = new Scanner(System.in);
System.out.println("请输入商品的生产日期");
String s = input.nextLine();// 输入生产日期 s
System.out.println("请输入商品的保质期");
int i = input.nextInt();// 输入保质期天数
// 建立一个f对象调用SimpleDateFormat类中的parse()方法
SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd");
// 将字符串类型的s,带入到f引用的parse()方法将其转化为Date类,并建立了对象date
Date date = f.parse(s);
Calendar c = Calendar.getInstance();// 建立一个对象c为了调用Calendar类中的setTime方法
c.setTime(date);// 将生产日期变为为Date 类
c.add(Calendar.MONTH, +i); // 调用Calendar中的add()方法,将设置的生产日期加上保质期。
String s2 = f.format(c.getTime());// 建立一个字符串对象s2来接收保质期到的那一天的日期
Date date2 = new Date();
String j = f.format(date2);// j为系统当前时间的字符串形式
System.out.println("今天的日期为" + j);
Date date1 = f.parse(s2);// 将保质期到达的那一天s2由字符串形式变为Date类
double x = date1.getTime();// 定义一个变量x来接收从1970年到商品过期的那一刻的毫秒数
double y = date2.getTime();// 定义一个变量y来接收从1970年到现在这一刻的毫秒数
if (x > y) {
double l = (x - y) / 1000 / 60 / 60 / 24;
System.out.println("商品没有过期");
System.out.println("商品还有" + l + "天过期");
} else {
System.out.println("商品过期了");
}
}
}