news 2026/4/21 23:48:09

日期题模版(made by yyf)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
日期题模版(made by yyf)

日期题通常包括:判断是否为闰年,计算某年某月有多少天,日期自增,遍历日期等,这里给出总结

判断是否为闰年

首先什么是闰年,闰年具有哪些特征?如果是整百年(如2000,1700)要被400整除才是闰年,否则为平年(2000闰年,1700平年);如果是非整百年(如2008,2009),只要被4整除就是闰年,不能被4整除为平年(2008闰年,2009平年)。

所以判断是否为闰年的写法就很固定:

static boolean isLeap(int y){ return (y % 4 == 0 && y % 100 != 0) || (y % 400 == 0); }

也就是闰年是能被4整除且不能被100整除或者能被400整除的数字,平年的2月份只有28天而闰年2月份有29天。

计算某年有某月有几天

boolean isLeap(int year){ return (year % 400 == 0) || (year % 4 == 0 && year % 100 != 0); } int daysInMonth(int y, int m){ int[] d = {0,31,28,31,30,31,30,31,31,30,31,30,31}; if(m == 2 && isLeap(y)) return 29; return d[m]; }

给你一个年月返回有多少天,d代表每个月有多少天,如果是闰年2月份返回29天

日期自增

boolean isLeap(int year){ return (year % 400 == 0) || (year % 4 == 0 && year % 100 != 0); } int daysInMonth(int y, int m){ int[] d = {0,31,28,31,30,31,30,31,31,30,31,30,31}; if(m == 2 && isLeap(y)) return 29; return d[m]; } int[] nextDay(int y, int m, int d){ d++; if(d > daysInMonth(y,m)){ d = 1; m++; if(m > 12){ m = 1; y++; } } return new int[]{y,m,d}; }

1.先让日期自增,d++,比如 2016-11-18 → d=19 2.如果日期超过该月天数,d=1换月,月自增,如果月超过12,年自增,最后返回年月日,

枚举日期区间

while(!(y1==y2 && m1==m2 && d1==d2)){ // 在这里写你的逻辑,例如判断是否回文 int[] next = nextDay(y1, m1, d1); y1 = next[0]; m1 = next[1]; d1 = next[2]; } // 最后一天也要处理

只要不是结束日期,就继续加一天。

你能枚举区间中的每一天,例如:判断是否回文,判断日期是否合法,累计天数,统计某种日期天数,例如周六周末。

例:给出一个日期区间,判断区间内有多少回文日期

记住:回文日期不需要枚举每天,回文日期由年份决定。

注意:要判断日期是否合法(月份要满足1<=m<=12,天数要满足在当月天数内)

import java.util.*; public class Main{ static boolean isLeap(int y){ return (y%400==0 || (y%4==0 && y%100!=0)); } static int daysInMonth(int y,int m){ int[] d = {0,31,28,31,30,31,30,31,31,30,31,30,31}; if(m==2 && isLeap(y)) return 29; return d[m]; } // 把 YYYYMMDD 转成整数便于比较 static int makeDate(int y){ int m = y % 100; int d = y / 100; return y * 10000 + m * 100 + d; } public static void main(String[] args){ Scanner sc = new Scanner(System.in); int L = sc.nextInt(); int R = sc.nextInt(); int lYear = L / 10000; int rYear = R / 10000; int ans = 0; for(int y = lYear; y <= rYear; y++){ int m = y % 100; int d = y / 100; // 月份非法 if(m < 1 || m > 12) continue; // 日期非法 if(d < 1 || d > daysInMonth(y, m)) continue; int date = makeDate(y); // 判断是否在区间内 if(date >= L && date <= R) ans++; } System.out.println(ans); } }

模版需要背

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 20:13:58

超细整理,性能测试如何做?怎么做?性能压力负载(汇总二)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 性能测试结果分析…

作者头像 李华
网站建设 2026/4/17 16:46:35

C++的第十四天笔记

存储持续性、作用域和链接性C使用三种&#xff08;C11四种&#xff09;不同方案存储数据。这些方案的区别在于数据保留在内存中的时间。自动存储持续性&#xff1a;在函数定义中声明的变量&#xff08;包括函数参数&#xff09;&#xff0c;程序执行所属函数 / 代码块时创建&am…

作者头像 李华
网站建设 2026/4/16 18:53:48

874-LangChain框架Use-Cases - 基于智能体的动态槽位填充系统 - 案例分析

1. 案例目标 本案例旨在构建一个基于智能体的动态槽位填充系统&#xff0c;实现智能对话系统&#xff0c;能够分析用户请求并自动收集必要信息&#xff0c;通过对话补充缺失信息。 系统主要实现以下目标&#xff1a; 实现动态槽位填充功能&#xff0c;自动识别并收集必要信息…

作者头像 李华
网站建设 2026/4/19 16:28:00

ops-nn算子库生态纵览 - 构建健壮的AI算力基石

目录 &#x1f3af; 摘要 1. ops-nn&#xff1a;CANN神经网络计算的中枢神经系统 1.1 &#x1f504; 算子库的定位与演进轨迹 1.2 &#x1f4ca; 矩阵计算&#xff1a;AI算力的本质洞察 2. NPU硬件架构&#xff1a;算子设计的物理基础 2.1 &#x1f527; AI Core微架构深…

作者头像 李华
网站建设 2026/4/19 2:15:04

基于Java Spring Boot的相机租赁系统的设计与实现-毕业设计源码50424

目录 摘 要 Abstract 第一章 绪 论 1.1 研究背景及意义 1.2 国内外研究现状 1.3 论文组织结构 第二章 关键技术 2.1 Java语言 2.2 MySQL 2.3 SpringBoot框架 2.4 B/S结构概述 第三章 相机租赁系统 系统分析 3.1 系统可行性分析 3.1.1 技术可行性 3.1.2 经济可行…

作者头像 李华
网站建设 2026/4/21 10:22:20

VMware替代 | 解析ZStack Cloud替代VCF基础架构底座路径

从2025年12月1日开始&#xff0c;VMware已经停止在中国销售VMware vSphere Foundation&#xff08;VVF&#xff09;VMware vSphere Enterprise Plus&#xff08;VVEP&#xff09;。这意味着&#xff0c;依赖VMware虚拟化的用户只能转向更昂贵的VMware Cloud Foundation&#xf…

作者头像 李华