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)

  • 需要 对象 时

相关推荐
1024奇点6 小时前
【仓颉语言入门 · 第二篇 第 22 课】
开发语言·ide·开源
Warren2Lynch7 小时前
C4 模型详解:利用 Visual Paradigm 可视化软件架构的综合指南
开发语言·uml
天河归来7 小时前
第三方接口不稳定,如何让核心任务继续完成
java·大数据
Knight_AL7 小时前
Java 文件下载时文件名中的 `#` 被转换成 `%23`?一次 URL 编码与解码问题排查
java·开发语言
ZhengEnCi8 小时前
GPT-6 Astra 爆改 Qwen 权重真有那么神吗:权重空间编程 0.016% 参数的真相
算法·架构
FRing038 小时前
vue2干货总结2(v-bind、v-for、v-model、指令修饰符、v-bind操作class和style)
开发语言·前端·vue.js·vue2
罗西的思考8 小时前
【轻量化复刻大模型 / KIMI K3】KDA(Kimi Delta Attention):并行
人工智能·算法·机器学习
by209999 小时前
C++ 智能指针的所有权与使用
开发语言·c++·经验分享
砚底藏山河9 小时前
python量化自定义周期 K 线合成
java·开发语言·数据库·python·金融
IT召唤狮9 小时前
开源企业级零信任项目Pangolin,零信任能挡住PHP核弹漏洞吗?
开发语言·开源·php