P103 日期问题

这道题只需要暴力枚举每一个情况就可以

代码奉上

java 复制代码
import java.util.Scanner;

public class Main {
    static int[] days = {0,31,28,31,30,31,30,31,31,30,31,30,31};
     static boolean check(int Y , int M , int D) {
        if (M == 0 || M > 12) return false;
        if (D == 0 || M != 2 && D > days[M]) return false;
        if (M == 2) {
            int leap = Y % 100 != 0 && Y % 4 == 0 || Y % 400 == 0 ? 1 : 0;
            if (D > 28 + leap) return false;
        }
        return true;
    }

    public static void main(String[] args) {
        //将字符串转换为数字
        Scanner sc = new Scanner(System.in);
        String input = sc.nextLine();
        String[] parts = input.split("/");
        int AA = Integer.parseInt(parts[0]);
        int BB = Integer.parseInt(parts[1]);
        int CC = Integer.parseInt(parts[2]);

        for (int i = 19600101; i <= 20591231; i++) {
            int year = i / 10000;
            int Month = i / 100 % 100;
            int day = i % 100;

            if (check(year, Month, day)) {
                if (year % 100 == AA && Month == BB && day == CC || year %100 == BB && Month == CC && day == AA || year %100 == CC && Month == AA && day == BB) {
                    System.out.printf("%02d-%02d-%02d\n", year, Month, day);
                }
            }
        }
    }
}

没有什么好解释的,主要想说一下paresInt和valueOf的区别

我们要首先说一下基本类型和对象的区别:

基本类型 = 纯数值,光秃秃,啥功能没有 对象 = 装数值的 "盒子",有功能、有方法、有属性

除了那8个基本类型,剩下的都是对象

基本类型:

  • 只有值,没有任何方法 你不能写 a.xxx,会报错
  • 存的就是数字本身
  • 速度极快
  • 不能放进集合(List、Map)
  • 赋值就是复制值 int b = a; 复制的是 10 这个值

对象:

  • 是一个 "东西",有方法、有功能
  • 存的是地址(引用)
  • 可以放进集合
  • 赋值是复制地址

基本类型 = 一张钞票(只有面值,没功能)

对象 = 一个钱包(里面有钱,还能打开、存放)

现在说一下paresInt和valueOf的区别:

Integer.parseInt(s) → 得到 基本类型 int

Integer.valueOf(s) → 得到 对象 Integer

什么时候用哪个?

parseInt

  • 做计算

  • 存到 int 变量里

  • 90% 的日常情况都用它

valueOf

  • 要放进 集合(List、Map)

  • 需要 对象

相关推荐
j7~13 分钟前
【Linux】二十六.线程篇三《Linux多线程编程:线程控制、线程ID以及进程地址空间分布、线程局部存储__thread以及clone系统调用》---详解
linux·运维·服务器·开发语言·c++·多线程编辑·线程的控制
维吉斯蔡8 小时前
【VS Code / Cursor】文件夹右键快捷打开与文件类型自动关联
开发语言·程序人生·学习方法
蓝斯4978 小时前
[原创]《C#高级GDI+实战:从零开发一个流程图》第章:增加贝塞尔曲线,上、下、左、右连接点
java·c#·流程图
前端工作日常8 小时前
我学习到的Java 的 Service 分层:itf 和 impl 到底是什么?
java·后端
都叫我大帅哥9 小时前
Spring @Transactional 注解完全指南
java·spring
Java成神之路-9 小时前
G1 垃圾回收器 :SATB + TAMS核心机制深度解析
java·jvm
前端工作日常9 小时前
我学习到的JIT即时编译与机器码缓存失效
java·后端
带刺的坐椅9 小时前
Solon 的 10 种 HTTP 服务器:改一行依赖,换一个引擎
java·solon·jetty·undertow·mcp-server·htttp
luj_176810 小时前
星火科技助力边远地区防病攻坚
c语言·开发语言·c++·经验分享·算法
always_TT10 小时前
【Python 日志记录:logging 模块入门】
开发语言·python·php