输入出生日期,输入当前日期,计算年龄,年龄必须是周岁

【问题描述】编写一个程序,用户输入出生日期和当前日期,计算出实际年龄。
【输入形式】用户在第一行输入出生日期,在第二行输入当前日期。日期格式为年.月.日,即中间用.分割。
【输出形式】程序在下一行输出实际年龄。
【样例输入】
1964.2.19
2001.7.21
【样例输出】37
【样例说明】用户第一次输入的日期为出生日期,回车表示本次输入结束。第二次输入的为当前日期,回车表示本次输入结束。系统返回实际年龄

如下,主要逻辑就这,非空验证如果需要自己写吧


 public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        String birth = s.next();
        String currData = s.next();
        String year  = birth.substring(0,4);
        String year2  = currData.substring(0,4);
        int year3 = Integer.parseInt(year2) - Integer.parseInt(year);
        System.out.println("实际年龄" + year3);
    }

img

分别进行比较

    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        String birth = s.next();
        String currData = s.next();
        String[] births = birth.split("\\.");
        String[] currDatas = currData.split("\\.");
        int year = Integer.parseInt(currDatas[0]) - Integer.parseInt(births[0]);
        if (Integer.parseInt(births[1])<Integer.parseInt(currDatas[1])){
            System.out.println(year);
        }
        if (Integer.parseInt(births[1])>Integer.parseInt(currDatas[1])){
            System.out.println(year-1);
        }
        if (Integer.parseInt(births[1])==Integer.parseInt(currDatas[1])){
            if (Integer.parseInt(births[2])>Integer.parseInt(currDatas[2])){
                System.out.println(year-1);
            }
            if (Integer.parseInt(births[2])<=Integer.parseInt(currDatas[2])){
                System.out.println(year);
            }
        }
    }

先比较月日,当前月日比出生月日 大,就用当前年份 - 出生年份 = 周岁 ;
当前月日比出生月日 小,就用当前年份 - 出生年份 - 1 = 周岁 ;