0
点赞
收藏
分享

微信扫一扫

实现时间的计算: 要求用户输入身份证号,若格式有误,要求其重新输入。然后根据身份证号码输出25岁生日 * 所在周的周三的日期。 * 例如: * 出生日期:1992-07-15。 * 20岁生日

鱼板番茄 2022-02-01 阅读 117
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("格式有误,请重新输入");
        }
    }

}
举报

相关推荐

0 条评论