bug_safe 2021-11-02 15:38 采纳率: 66.7%
浏览 48
已结题

一道Java题,要求输出与题一致

判断输入的值是否为世界完全对称日,并且输出它的前一个世界完全对称日和后一个世界完全对称日

  • 写回答

3条回答 默认 最新

  • iilmx 2021-11-02 16:29
    关注
    
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;
    import java.util.Scanner;
    
    /**
     * 世界完全对称日是指公历纪年日期中数字左右完全对称的日期
     * 如2010年1月2日(20100102).2011年11月2日(20111102)2020年2月2日
     * (20200202)等
     * 请用Java编写出计算世界完全对称日的程序
     * 要求输入一个日期(yyyy-mm-dd),判断当前是不是世界完全对称日,并计算距
     * 离这个日期最近的上—个世界完全对称日和最近的下一个世界完全对称日的日期
     * 例如输入:2021-11-02
     * 则输出:2021-11-02不是世界完全对称目距离2021-11-02最近的下一个世界对
     * 称日是2021-12-02,距离2021-11-02最近的上一个世界对称日是2020-02-02
     */
    public class Main {
        public static void main(String[] args) {
            SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");
            Scanner s = new Scanner(System.in);
            String strDate = s.nextLine();
            StringBuffer sb = new StringBuffer(strDate);
            sb.deleteCharAt(sb.indexOf("-")).deleteCharAt(sb.indexOf("-"));
            if(sb.toString().equals(sb.reverse().toString())){
                System.out.println(strDate + "是世界完全对称日!");
            }else{
                String lastStr = "";
                String nextStr = "";
                String str = "";
                boolean lastFlag = true;
                boolean nextFlag = true;
                int day = 1;
                while(lastFlag || nextFlag){
                    //  下一个世界对称日
                    if(nextFlag){
                        Calendar calendar = Calendar.getInstance();
                        calendar.add(Calendar.DAY_OF_YEAR, day);
                        str = df.format(new Date(calendar.getTime().getTime()));
                        sb = new StringBuffer(str);
                        sb.deleteCharAt(sb.indexOf("-")).deleteCharAt(sb.indexOf("-"));
                        if(sb.toString().equals(sb.reverse().toString())){
                            nextStr = str;
                            nextFlag = false;
                        }
                    }
                    //  上一个世界对称日
                    if(lastFlag){
                        Calendar calendar = Calendar.getInstance();
                        calendar.add(Calendar.DAY_OF_YEAR, -day);
                        str = df.format(new Date(calendar.getTime().getTime()));
                        sb = new StringBuffer(str);
                        sb.deleteCharAt(sb.indexOf("-")).deleteCharAt(sb.indexOf("-"));
                        if(sb.toString().equals(sb.reverse().toString())){
                            lastStr = str;
                            lastFlag = false;
                        }
                    }
    
    
                    ++day;
                }
                System.out.println(strDate + "不是世界完全对称目距离"+
                        strDate+",最近的下一个世界对称日是"+ nextStr +",距离"+
                        strDate+"最近的上一个世界对称日是"+lastStr);
            }
    
        }
    }
    
    

    如果对你有帮助,请采纳一下哈!!!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 11月10日
  • 已采纳回答 11月2日
  • 修改了问题 11月2日
  • 修改了问题 11月2日
  • 展开全部

悬赏问题

  • ¥100 连续两帧图像高速减法
  • ¥15 组策略中的计算机配置策略无法下发
  • ¥15 如何绘制动力学系统的相图
  • ¥15 对接wps接口实现获取元数据
  • ¥20 给自己本科IT专业毕业的妹m找个实习工作
  • ¥15 用友U8:向一个无法连接的网络尝试了一个套接字操作,如何解决?
  • ¥30 我的代码按理说完成了模型的搭建、训练、验证测试等工作(标签-网络|关键词-变化检测)
  • ¥50 mac mini外接显示器 画质字体模糊
  • ¥15 TLS1.2协议通信解密
  • ¥40 图书信息管理系统程序编写