回文日期

输入描述

输入包含一个八位整数 NN,表示日期。

对于所有评测用例,10000101 \leq N \leq 8999123110000101N89991231,保证 NN 是一个合法日期的 8 位数表示。

输出描述

输出两行,每行 1 个八位数。第一行表示下一个回文日期,第二行表示下一个 ABABBABA 型的回文日期。

复制代码
import java.util.Calendar;
import java.util.Scanner;
import java.text.SimpleDateFormat;

public class Main {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        String str1=null;
        String str2=null;
        int N=scanner.nextInt()/10000;        //保留前四位 年份
        for (int i = N+1; i <= 8999; i++) {
            StringBuilder str    =new StringBuilder(i+"");//数字转化为字符串 StringBuilder对象 和String 比能多次修改
            str.reverse();//将前4位反转得到回文数
            String data=i+""+str;
            if(str1 != null && str2 != null)break;//用str1,2来保存输出的结果
            if (isData(data)&&!isABAB(data)) {        //判断是否合理且是否为abab型     +!防止获取的str、str1一样
                if (str1==null) {
                    str1=data;
                }
            }
            if (isData(data)&&isABAB(data)) {
                if (str2==null) {
                    str2=data;
                }
            }        
        }//先转化为字符串再输出好回文数字
        System.out.println(str1);
        System.out.println(str2);
    }
    private static boolean isABAB(String data) {
        // TODO 自动生成的方法存根
        char[] arr=data.toCharArray();
        if (arr[0]!=arr[1]&&arr[0]==arr[2]&&arr[1]==arr[3]) {
            return true;
        }
        return false;
    }
    private static boolean isData(String data) {
        // TODO 自动生成的方法存根d
        boolean res=true;
        SimpleDateFormat format =new SimpleDateFormat("yyyyMMdd");     //格式化时间成yyyyMMdd型
        try {
            format.setLenient(false);        //日期格式不合格 需要抛出异常 停止SimpleDateFormat的自动计时
            format.parse(data);                //将字符串转化为日期
        } catch (Exception e) {
            // TODO: handle exception
            res=false;
        }    
        return res;
    }
}
复制代码

 

posted @   抹茶泡芙  阅读(34)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示