蓝桥杯杯赛-日期模拟

news2025/4/2 22:31:00

知识点

处理日期

1. 按天枚举日期:逐天遍历起始日期到结束日期范围内的每个日期。

2. 处理闰年:正确判断闰年条件。闰年定义为:年份 满足以下任意一个条件:(闰年的2月只有29天)

满足下面一个条件就是闰年

1> 是 400 的倍数。

2> 是 4的倍数但不是 100的倍数

艺术与篮球

已知当前是星期几求出某个月的某一天是星期几

int week=x;x为第一天的日期

week = week%7+1求出每个星期的下一天

题目链接

1.艺术与篮球 - 蓝桥云课

题目解析

判断笔画数是不是超过50,超过50就去练习书法

算法原理

使用哈希表,把笔画和对应的数字联系在一起

使用日期函数来标记时间的开始和结尾,然后遍历每一天去计算笔画数

代码编写

import java.time.LocalDate;
import java.util.HashMap;
import java.util.Map;

public class Main {
    public static void main(String[] args) {
        Map<Character, Integer> map = new HashMap<Character, Integer>() {{
            put('0', 13);  // 零
            put('1', 1);   // 一
            put('2', 2);   // 二
            put('3', 3);   // 三
            put('4', 5);   // 四
            put('5', 4);   // 五
            put('6', 4);   // 六
            put('7', 2);   // 七
            put('8', 2);   // 八
            put('9', 2);   // 九
        }};

        LocalDate startDate = LocalDate.of(2000, 1, 1);
        LocalDate endDate = LocalDate.of(2024, 4, 14);
        int days = 0;

        while (startDate.isBefore(endDate)) {
            String s = startDate.toString().replace("-", "");
            int total = 0;

            // 通过map查询笔画数
            for (char c : s.toCharArray()) {
                total += map.get(c);
            }

            if (total > 50) {
               days++;
            }
            startDate = startDate.plusDays(1);
        }

        System.out.println(days);
    }
}

从哪开始从哪结束

LocalDate startDate = LocalDate.of(2000, 1, 1);

LocalDate endDate = LocalDate.of(2024, 4, 14);

while 循环会一直执行,直到 startDate 等于或超过 endDate。循环会逐日增加 startDate,并计算当天日期的数字笔画数。

startDate.isBefore(endDate)

转为Srting类型,并且去除-

 startDate.toString().replace("-", "");

自增天数

  startDate = startDate.plusDays(1);

补充: 获得xxx年xxx月xx日是星期几

可以使用

LocalDate date = LocalDate.of(2026, 4, 1); // 获取星期几(英文)

String weekday = date.getDayOfWeek().getDisplayName(TextStyle.FULL, Locale.ENGLISH);

另一种写法

 //造一个hash表,里面对应笔画数
        int[] hash = {13, 1, 2, 3, 5, 4, 4, 2, 2, 2};
        //month里面放每月的个数
        int[] months = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
        //计算打篮球的天数
        int count = 0;
        boolean feb = true;
        for (int year = 2000; year <= 2024; year++) {
            //笔画数
            int num = 0;
            //判断是平年还是润年
            //计算2月的值
            months[2] = isLeapYear(year) ? 29 : 28;
            //计算每一月,每一天
            for (int month = 1; month <= 12; month++) {
                for (int day = 1; day < months[month]; day++) {
                    //计算年的每一位
                    int ypos1 = year / 1000;
                    year = year % 1000;
                    int ypos2 = year / 100;
                    year = year % 100;
                    int ypos3 = year / 10;
                    year = year % 10;
                    int ypos4 = year;
                    //计算月的每一位
                    int mpos1 = month / 10;
                    month = month % 10;
                    int mpos2 = month;
                    //计算每一天的每一位
                    int dpos1 = day / 10;
                    day = day % 10;
                    int dpos2 = day;
                    //计算笔画数
                    num = hash[ypos1] + hash[ypos2] + hash[ypos3] + hash[ypos4] +
                            hash[mpos1] + hash[mpos2] + hash[dpos1] + hash[dpos2];
                    //最后计算天数
                    if (num > 50) {
                        count++;
                    }
                    if (year == 2024 && month == 4 && day == 13) {
                        System.out.println(count);
                        return;

                    }
                }
            }
        }

    }
    public static void main(String[] args) {
        cal();

    }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2326816.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

搭建开源笔记平台:outline

折腾的意义 为什么要自己搭建一个笔记平台&#xff1f;没理由&#xff0c;就是突然想试试。有时候突然有个想法&#xff0c;搜了一下正好有合适的方案&#xff0c;就顺手试一下。 其实已经有很多成熟的笔记软件&#xff0c;例如Notion/OneNote&#xff0c;但谁不想要一个数据完…

Unity编辑器功能及拓展(2) —Gizmos编辑器绘制功能

Unity中的Gizmos功能是用于在场景视图中绘制辅助图形或图标的工具&#xff0c;帮助开发者在编辑模式下直观调试和可视化游戏对象的位置、范围、方向等信息。 一.定义概述 Gizomsd 概述 Gizoms是Unity提供的一个API&#xff0c;或者叫做一个工具类&#xff0c;包含一系列静态…

电脑屏幕亮度随心控,在Windows上自由调整屏幕亮度的方法

调整电脑屏幕的亮度对于保护视力和适应不同环境光线条件非常重要。无论是在白天强光下还是夜晚昏暗环境中&#xff0c;合适的屏幕亮度都能让您的眼睛更加舒适。本文中简鹿办公小编将向您介绍几种在 Windows 系统中调整屏幕亮度的方法。 方法一&#xff1a;使用快捷键 大多数笔…

presto行转列

presto的行列转换和spark、hive一样也是通过外链语句实现的&#xff0c;只不过语法和关键子有点不同&#xff0c;如下 with tmp1 as (select 1,2,3 as a1,4,5,6 as a2 ) select * from tmp1 cross join unnest(split(tmp1.a1, ,),split(tmp1.a2, ,) ) as b(a1s,a2s) 结果如下

51c自动驾驶~合集15

我自己的原文哦~ https://blog.51cto.com/whaosoft/11720657 #DRAMA 首个基于Mamba的端到端运动规划器&#xff08;新加坡国立&#xff09; 运动规划是一项具有挑战性的任务&#xff0c;在高度动态和复杂的环境中生成安全可行的轨迹&#xff0c;形成自动驾驶汽车的核心能…

拼多多 anti-token unidbg 分析

声明: 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01; 逆向分析 版本7.3-7.4 都试过加密没什…

【Git】5 个分区的切换方式及示例

目录 1. **工作区&#xff08;Working Directory&#xff09;**2. **缓存区&#xff08;Stage/Index&#xff09;**3. **本地仓库&#xff08;Local Repository&#xff09;**4. **远程仓库&#xff08;Remote Repository&#xff09;**5. **贮藏区&#xff08;Stash&#xff0…

Java高频面试之并发编程-02

hello啊&#xff0c;各位观众姥爷们&#xff01;&#xff01;&#xff01;本baby今天来报道了&#xff01;哈哈哈哈哈嗝&#x1f436; 面试官&#xff1a;进程和线程的区别是什么&#xff1f; 1. 资源分配与独立性 进程&#xff1a; 独立性&#xff1a;每个进程拥有独立的内存…

openwebui和keycloak集成,使用keycloak的用户名和密码登录

1&#xff0c;实现效果 使用keycloak定义的用户名和密码&#xff0c;直接登录openwebui 2&#xff0c;实现原理 keycloak中用户信息中包含用户名和密码&#xff0c;以及email。 使用keycloak中的用户名和密码登录之后&#xff0c;会用email创建一个openwebui的账号。之后每次…

【区块链安全 | 第八篇】多签机制及恶意多签

部分参考&#xff1a;慢雾科技 文章目录 为什么需要多签多签机制Tron钱包下的恶意多签Tron 钱包多签权限分类Tron 多签机制的运作方式 恶意多签的过程黑客通过多签机制控制账户黑客剥夺用户权限&#xff0c;完全控制账户 恶意多签成因 在区块链中&#xff0c;多签&#xff08;M…

二月公开赛Web-ssrfme

目录 环境搭建 题目分析 分析代码 解题过程 Redis未授权访问 寻找Flag 环境搭建 进入含有docker-compose.yml的文件内&#xff0c;拉取容器镜像 docker-compose up -d 题目分析 访问容器地址172.25.254.200:8091查看题目 分析代码 url通过GET请求访问界面&#xff0c…

告别枯燥工作,走向自动化

嘿&#xff0c;小伙伴们&#xff01;今天给你们介绍两款超实用的RPA办公自动化软件&#xff0c;用它们&#xff0c;再也不用像机器一样做重复劳动啦&#xff0c;超省时间&#xff01; 工具名称&#xff1a;影刀RPA&#xff08;类似产品&#xff0c;八爪鱼 RPA&#xff0c;操作上…

可信数据空间:构筑安全可控数据流通

前言&#xff1a;可信数据空间是一种数据基础设施&#xff0c;发展可信数据空间是全国及各地数据基础设施建设的重要方面。国内数据空间的探索和实践仍然数据探索阶段。本期分享&#xff1a;可信数据空间构筑安全可控数据流通&#xff0c;包括可信数据空间技术介绍、如何助力数…

Zookeeper特性与节点数据类型

数据结构和监听机制 CP 文件系统形式存储 观察者模式监听节点数据变化、 临时节点客户端超时或发生异常节点就会删除 2888同步数据 3888选举端口 1.什么是Zookeeper ZooKeeper 是一个开源的分布式协调框架&#xff0c;是Apache Hadoop 的一个子项目&#xff0c;主要用来…

处理 Linux 信号:进程控制与异常管理的核心

个人主页&#xff1a;chian-ocean 文章专栏-Linux 前言&#xff1a; 在 Linux 操作系统中&#xff0c;信号是用于进程间通信的一种机制&#xff0c;能够向进程发送通知&#xff0c;指示某些事件的发生。信号通常由操作系统内核、硬件中断或其他进程发送。接收和处理信号是 Li…

【蓝桥杯每日一题】4.1

&#x1f3dd;️专栏&#xff1a; 【蓝桥杯备篇】 &#x1f305;主页&#xff1a; f狐o狸x "今日秃头刷题&#xff0c;明日荣耀加冕&#xff01;" 今天我们来练习二分算法 不熟悉二分算法的朋友可以看&#xff1a;【C语言刷怪篇】二分法_编程解决算术问题-CSDN博客 …

分享系列项目的基础项目

本人分享了一系列的框架项目&#xff0c;它们共同需要依赖这个公共基础&#xff0c;结构如下图所示&#xff1a; 其中&#xff1a; audit: JPA的审计信息基础类auth&#xff1a;认证授权相关类config: 包括redis配置&#xff0c;client中token配置&#xff0c;openai文档配置…

为 MinIO AIStor 引入模型上下文协议(MCP)服务器

Anthropic 最近宣布的模型上下文协议 &#xff08;MCP&#xff09; 将改变我们与技术交互的方式。它允许自然语言通信替换许多任务的复杂命令行语法。不仅如此&#xff0c;语言模型还可以总结传统工具的丰富输出&#xff0c;并以人类可读的形式呈现关键信息。MinIO 是世界领先的…

数据结构实验1.1: 顺序表的操作及其应用

这里写自定义目录标题 一、实验目的二、注意事项三、实验内容&#xff08;一&#xff09;问题描述&#xff08;二&#xff09;基本要求 四&#xff0c;操作步骤&#xff08;一&#xff09;使用visual studio集成环境编写程序 五&#xff0c;示例代码六&#xff0c;运行效果 一、…

基于yolov11的汽车损伤检测系统python源码+onnx模型+评估指标曲线+精美GUI界面

【算法介绍】 基于YOLOv11的汽车损伤检测系统是一种先进的计算机视觉技术&#xff0c;旨在快速准确地识别汽车的各种损伤类型。该系统利用YOLOv11模型的强大性能&#xff0c;实现了对车辆损伤的精确检测与分类。 该系统能够识别的损伤类型包括裂纹&#xff08;crack&#xff…