当前位置: 首页 > news >正文

蓝桥杯练习题-特殊日期

问题描述:
对于一个日期,我们可以计算出年份的各个数位上的数字之和,也可以分别计算月和日的各位数字之和。
请问1900年1月1日至9999年12月31日总共有多少天?年份的数位数字之和等于月的数位数字之和加日的数位之和
例如:2022年11月13日满足要求:2+0+2+2=(1+1)+(1+3)
请提交满足条件的日期总数量。

实现思路:
初始化两个LocalDate对象,分别代表开始日期(1990年1月1日)和结束日期(9999年12月31日)。
初始化一个计数器counter,用于统计满足条件的日期数量。
使用while循环遍历开始日期到结束日期之间的所有日期。
对于每个日期,分别获取其年份、月份和日期,并计算它们的各位数之和。
如果年份的各位数之和等于月份和日期的各位数之和,则计数器counter加1。
日期递增1天,继续下一个日期的判断。
当遍历完所有日期后,输出满足条件的日期数量。

代码实现:

方式1:

package com.ztt.Demo01;import java.time.LocalDate;public class demo03 {public static void main(String[] args) {LocalDate beginDate=LocalDate.of(1990, 1, 1);LocalDate endDate=LocalDate.of(9999, 12, 31);int counter=0;while(beginDate.compareTo(endDate)<=0) {int year=beginDate.getYear();int month=beginDate.getMonthValue();int day=beginDate.getDayOfMonth();if(sum(year)==sum(month)+sum(day)) {counter++;}//递增1天beginDate=beginDate.plusDays(1);}System.out.println(counter);}//计算整数的每一位之和private static int sum(int number) {int a=0,b=0,c=0,d=0;d=number % 10;//个位c=(c=number / 10 % 10)!=0?c:0;b=(c=number / 100 % 10)!=0?c:0;a=(c=number / 1000 % 10)!=0?c:0;return a+b+c+d;}}

输出结果:

49776

 方式2:

package com.ztt.Demo01;public class Day{public int day1(int a) {switch(a) {case 1:;case 3:;case 5:;case 7:;case 8:;case 10:;case 12:return 31;case 2:return 28;default: return 30;}
}public int day2(int a) {switch(a) {case 1:;case 3:;case 5:;case 7:;case 8:;case 10:;case 12:return 31;case 2:return 29;default: return 30;}}public static void main(String[] args) {Day Day = new Day();int i,j,k,sum=0,DaySum=0;for(i=1990;i<=9999;i++) { for(j=1;j<13;j++) {//	System.out.print(j+" ");if((i%4==0&&i%100!=0)||(i%100==0&&i%400==0)){for(k=1;k<=Day.day2(j);k++) { if((i/1000+(i/100)%10+(i/10)%10+i%10) == (j/10+j%10+k/10+k%10)) {System.out.println(i+"年"+j+"月"+k+"日");	DaySum++;}sum++;}}else {for(k=1;k<=Day.day1(j);k++) {            if((i/1000+(i/100)%10+(i/10)%10+i%10) == (j/10+j%10+k/10+k%10)) {System.out.println(i+"年"+j+"月"+k+"日");DaySum++;}sum++;}}}}System.out.println("一共有:"+sum+"天");System.out.print("符合要求的有:"+DaySum+"天");}}

输出结果:

一共有:2925592天
符合要求的有:70183天

 

 

相关文章:

  • 【C++】二叉树进阶之二叉搜索树
  • 【漏洞复现】网康科技 NS-ASG 应用安全网关 SQL注入漏洞(CVE-2024-2330)
  • JUC之JMM
  • android metaRTC编译
  • 记录一次大厂面试题
  • Linux:导出环境变量命令export
  • Android7.1 ANR error 弹窗处理
  • 全局Ceph节点宕机处理
  • PDFPlumber解析PDF文本报错:AssertionError: (‘Unhandled’, 6)
  • SpringBoot基础入门
  • fastgpt本地详细部署以及配置
  • Spring boot 集成netty实现websocket通信
  • Android 二维码相关(一)
  • 微信小程序修改placeholder样式
  • Java必须掌握的B树知识点(含面试大厂题含源码)
  • 【Leetcode】101. 对称二叉树
  • leetcode378. Kth Smallest Element in a Sorted Matrix
  • magento 货币换算
  • PV统计优化设计
  • storm drpc实例
  • 仿天猫超市收藏抛物线动画工具库
  • 基于Volley网络库实现加载多种网络图片(包括GIF动态图片、圆形图片、普通图片)...
  • 简单实现一个textarea自适应高度
  • 前端代码风格自动化系列(二)之Commitlint
  • 日剧·日综资源集合(建议收藏)
  • 删除表内多余的重复数据
  • 实战:基于Spring Boot快速开发RESTful风格API接口
  • 通过获取异步加载JS文件进度实现一个canvas环形loading图
  • 网页视频流m3u8/ts视频下载
  • 用mpvue开发微信小程序
  • 中国人寿如何基于容器搭建金融PaaS云平台
  • AI算硅基生命吗,为什么?
  • 如何用纯 CSS 创作一个菱形 loader 动画
  • 数据库巡检项
  • ​Base64转换成图片,android studio build乱码,找不到okio.ByteString接腾讯人脸识别
  • ​iOS安全加固方法及实现
  • ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
  • #[Composer学习笔记]Part1:安装composer并通过composer创建一个项目
  • #include
  • #周末课堂# 【Linux + JVM + Mysql高级性能优化班】(火热报名中~~~)
  • $L^p$ 调和函数恒为零
  • (4.10~4.16)
  • (学习日记)2024.03.12:UCOSIII第十四节:时基列表
  • (一)SpringBoot3---尚硅谷总结
  • (转)机器学习的数学基础(1)--Dirichlet分布
  • (转)使用VMware vSphere标准交换机设置网络连接
  • ./configure、make、make install 命令
  • .NET 6 Mysql Canal (CDC 增量同步,捕获变更数据) 案例版
  • .Net CF下精确的计时器
  • .NET core 自定义过滤器 Filter 实现webapi RestFul 统一接口数据返回格式
  • .NET Framework Client Profile - a Subset of the .NET Framework Redistribution
  • .NET MAUI学习笔记——2.构建第一个程序_初级篇
  • .NET MVC 验证码
  • .NET Windows:删除文件夹后立即判断,有可能依然存在
  • .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖