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)

  • 需要 对象

相关推荐
小短腿的代码世界1 分钟前
Qt实时盈亏计算深度解析:从持仓数据到动态盈亏展示
开发语言·qt
小康小小涵19 分钟前
基于ESP32S3实现无人机RID模块底层源码编译
linux·开发语言·python
lzjava202432 分钟前
Python的函数
开发语言·python
掌心向暖RPA自动化1 小时前
如何获取网页某个元素在屏幕可见部分的中心坐标影刀RPA懒加载坐标定位技巧
java·javascript·自动化·rpa·影刀rpa
Awesome Baron1 小时前
skill、tool calling、MCP区别
开发语言·人工智能·python
日取其半万世不竭1 小时前
Minecraft Java版社区服务器搭建教程(Linux,适合新手)
java·linux·服务器
Python私教1 小时前
GenericAgent PySide6 桌面应用深度解析:悬浮按钮 + 聊天面板的原生 Qt 方案
开发语言·数据库·qt
矢志航天的阿洪1 小时前
用 MATLAB 控制 STK Aviator:从零搭建一个 AWACS 支援作战场景
开发语言·matlab
CN-Dust1 小时前
【C++】while语句例题专题
数据结构·c++·算法
澈2071 小时前
STL迭代器:容器遍历的万能钥匙
开发语言·c++