键盘输入两个数据
数据1: 商品的生产日期(分别输入年月日/一次性输入整个日期)
数据2: 商品的保质期(int天数)
输出结果: 这个商品是否已经过期
方法一:
import java.util.Date;
import java.util.Scanner;
public class T1 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
//方式一: 分别获取年月日信息
System.out.println("请您输入年份: ");
int year = scanner.nextInt();
System.out.println("请您输入月份: ");
int month = scanner.nextInt();
System.out.println("请您输入日期: ");
int day = scanner.nextInt();
//根据输入的年月日来获取生产日期的日期对象
Date createDate = new Date(year - 1900, month - 1, day);
System.out.println("请您输入保质期(天): ");
int dayNum = scanner.nextInt();
//目标: 判断生产日期 + 保质期的天数 在 当前日期之前,则表示过期/反之则没有过期
//1.获取生产日期的毫秒数 + 保质期天数的毫秒数
//注意: 1L表示在运算过程中把int范围提升到long范围,减小了乘法数据溢出边界的可能性(还是可能溢出,如果超过long范围)
long l1 = createDate.getTime() + 1L * dayNum * 24 * 60 * 60 * 1000;
//转换日期
Date newDate = new Date(l1);
//获取当前系统时间
Date now = new Date();
//3.比较now和newDate谁前谁后
boolean bool = newDate.before(now);
//bool是true表示已过期,是false则表示没过期
System.out.println("该产品是否过期: " + bool);
}
}
方法二:
import java.util.Date;
import java.util.Scanner;
public class T1 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
//方式二: 直接获取日期字符串(格式注意要求)
System.out.println("请您输入商品的生产日期(yyyy/MM/dd): ");
String dateStr = scanner.nextLine();
Date createDate = new Date(dateStr);
System.out.println("请您输入保质期(天): ");
int dayNum = scanner.nextInt();
long l1 = createDate.getTime() + 1L * dayNum * 24 * 60 * 60 * 1000;
Date newDate = new Date(l1);
Date now = new Date();
boolean bool = newDate.before(now);
System.out.println("该产品是否过期: " + bool);



