public class Test05 {
public static void main(String[] args) throws ParseException {
Scanner scanner = new Scanner(System.in);
String id = scanner.nextLine();
// 正则表达式判断身份证号
String str = "\\d{18}";
if (id.matches(str)){
// 截取出身份证中的年月 拼接成出生日期
String birthday = id.substring(6, 10) + "-" + id.substring(10, 12) + "-" + id.substring(12, 14);
System.out.println("该用户的出生日期是:"+birthday);
//25岁生日
String currentBirthday = (Integer.parseInt(id.substring(6, 10))+25) + "-" + id.substring(10, 12) + "-" + id.substring(12, 14);
System.out.println("25岁生日的时间是:"+currentBirthday);
// 将String格式转换成时间格式
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date currentBirthdayDate = simpleDateFormat.parse(currentBirthday);
// 实例化 Calendar
Calendar cal = Calendar.getInstance();
// 将日期设置到Calendar对象中
cal.setTime(currentBirthdayDate);
// 直接返回星期几(1=星期日)
int weekDay = cal.get(Calendar.DAY_OF_WEEK);
int day = Integer.parseInt(id.substring(12, 14));
switch (weekDay){
case 1:
System.out.println("今天是星期日,日期是:"+currentBirthday);
String currentWednesday7 = (Integer.parseInt(id.substring(6, 10))+25) + "-" + id.substring(10, 12) + "-" + (day-4);
System.out.println("本周的周三的日期:"+currentWednesday7);
break;
case 2:
System.out.println("今天是星期一,日期是:"+currentBirthday);
String currentWednesday1 = (Integer.parseInt(id.substring(6, 10))+25) + "-" + id.substring(10, 12) + "-" + (day+2);
System.out.println("本周的周三的日期:"+currentWednesday1);
break;
case 3:
System.out.println("今天是星期二,日期是:"+currentBirthday);
String currentWednesday2 = (Integer.parseInt(id.substring(6, 10))+25) + "-" + id.substring(10, 12) + "-" + (day+1);
System.out.println("本周的周三的日期:"+currentWednesday2);
break;
case 4:
System.out.println("今天是星期三,日期是:"+currentBirthday);
String currentWednesday3 = (Integer.parseInt(id.substring(6, 10))+25) + "-" + id.substring(10, 12) + "-" + day;
System.out.println("本周的周三的日期:"+currentWednesday3);
break;
case 5:
System.out.println("今天是星期四,日期是:"+currentBirthday);
String currentWednesday4 = (Integer.parseInt(id.substring(6, 10))+25) + "-" + id.substring(10, 12) + "-" + (day-1);
System.out.println("本周的周三的日期:"+currentWednesday4);
break;
case 6:
System.out.println("今天是星期五,日期是:"+currentBirthday);
String currentWednesday5 = (Integer.parseInt(id.substring(6, 10))+25) + "-" + id.substring(10, 12) + "-" + (day-2);
System.out.println("本周的周三的日期:"+currentWednesday5);
break;
case 7:
System.out.println("今天是星期六,日期是:"+currentBirthday);
String currentWednesday6 = (Integer.parseInt(id.substring(6, 10))+25) + "-" + id.substring(10, 12) + "-" + (day-3);
System.out.println("本周的周三的日期:"+ currentWednesday6);
break;
}
}else {
System.out.println("格式有误,请重新输入");
}
}
}