【蓝桥杯冲刺】日期类专题特训

news/2024/11/8 0:49:58/

目录

1. 日期累加

题目描述

输入

输出

代码

2. 日期差值

题目描述

输入

输出

代码

3. 打印日期

题目描述

输入

输出

代码

写在最后:


1. 日期累加

题目链接:日期累加

题目描述

输入

1
2008 2 3 100

输出

2008-05-13

代码

#include <iostream>
using namespace std;//打表
int month[] = {0, 31, 28, 31, 30, 31, 30, 31 , 31, 30, 31, 30, 31};//取当月日期
int get_mday(int year, int mon) {if(mon == 2 && ((year % 4 == 0 && year % 100) || year % 400 == 0)) return month[mon] + 1;else return month[mon];
}//具体实现
void plus_day(int& year, int& mon, int& day, int plus) {day += plus;while (day > get_mday(year, mon)) {int mday = get_mday(year, mon);if(day > mday) {day -= mday;mon++;}if(mon > 12) {mon -= 12;year++;}}
}int main() 
{int n;cin >> n;while(n--) {int year, mon, day, plus;cin >> year >> mon >> day >> plus;//将日期加在一起plus_day(year, mon, day, plus);printf("%02d-%02d-%02d\n", year, mon, day);}return 0;
}

2. 日期差值

题目链接:日期差值

题目描述

输入

20110412
20110422

输出

11

代码

#include <iostream>
using namespace std;//打表
int month[] = {0, 31, 28, 31, 30, 31, 30, 31 , 31, 30, 31, 30, 31};//判断闰年
bool is_leap(int year) {if((year % 4 == 0 && year % 100) || year % 400 == 0) return true;else return false;
}int main() 
{int n1, n2;while (cin >> n1 >> n2) {//保证之后的代码时小的日期减大的日期if(n1 > n2) swap(n1, n2);else if(n1 == n2) {cout << 2 <<endl; //题目要求连续日期算两天return 0;}//取出年月日int year1 = n1 / 10000, year2 = n2 / 10000;int mon1 = n1 / 100 % 100, mon2 = n2 / 100 % 100;int day1 = n1 % 100, day2 = n2 % 100;int ans = 0;//年份差了几天while(year1 != year2) {if(is_leap(year1)) ans += 366;else ans += 365;year1++;}//月份差了几天while(mon1 != mon2) {if(mon1 < mon2) {if(mon1 == 2 && is_leap(year1)) ans += month[mon1] + 1;else ans += month[mon1];mon1++;}else {if(mon1 == 2 && is_leap(year1)) ans -= month[mon1] + 1;else ans -= month[mon1];}}//日期差了几天if(day1 < day2) {ans += day2 - day1;}else {ans -= day1 - day2;}cout << ans + 1 << endl;}return 0;
}

3. 打印日期

题目链接:打印日期

题目描述

输入

2000 3
2000 31
2000 40
2000 60
2000 61
2001 60

输出

2000-01-03
2000-01-31
2000-02-09
2000-02-29
2000-03-01
2001-03-01

代码

#include <iostream>
using namespace std;//打表
int month[] = {0, 31, 28, 31, 30, 31, 30,31, 31, 30, 31, 30, 31};//求当月日期
int get_mday(int year, int mon) {if(mon == 2 && ((year % 4 == 0 && year % 100) || year % 400 == 0)) return month[mon] + 1;else return month[mon];
}int main() 
{int year, day;while (cin >> year >> day) {int mon = 1;while (day > get_mday(year, mon)) {day -= get_mday(year, mon);mon++;if(mon > 12) {mon -= 12;year++;}}printf("%02d-%02d-%02d\n", year, mon, day);}return 0;
}

总结:

日期类的题目大同小异,

把日期类的基本思路练熟了,基本上是能够稳拿这一部分的分数的,

如果你的日期类还不熟练,赶快拿上面几道题练一练手吧!

写在最后:

以上就是本篇文章的内容了,感谢你的阅读。

如果喜欢本文的话,欢迎点赞和评论,写下你的见解。

如果想和我一起学习编程,不妨点个关注,我们一起学习,一同成长。

之后我还会输出更多高质量内容,欢迎收看。 


http://www.ppmy.cn/news/40586.html

相关文章

redis性能优化

Redis 是基于单线程模型实现的&#xff0c;也就是 Redis 是使用一个线程来处理所有的客户端请求的&#xff0c;尽管 Redis 使用了非阻塞式 IO&#xff0c;并且对各种命令都做了优化&#xff08;大部分命令操作时间复杂度都是 O(1)&#xff09;&#xff0c;但由于 Redis 是单线程…

macOS升级到Ventura 后vscode远程开发ssh链接失败

背景 最近公司IT让升级到mac系统&#xff0c;说之前的老版本太久了&#xff0c;因此要被迫升级macOS系统&#xff0c;这是一次重大升级&#xff0c;升级之后加大了和apple其他设备的互通性&#xff0c;升级完成之后确实和iOS更像了。不过我升级后发现我的vscode连不上开发机了…

前端项目-06-search模块商品列表-面包屑-品牌-属性开发

目录 1-静态页面的开发 2-获取搜索页面数据 2.1-api定义接口相关方法 2.2-定义发起请求数据 2.2-定义发起请求的方法 2.3-vuex中获取数据 2.4-监听路由变化重置请求数据 3-动态渲染商品列表 4-动态渲染面包屑 4.1-渲染面包屑数据​编辑 4.2-点击面包屑x触发事件 5-动…

自动化工具 pytest 内核测试平台落地初体验

测试平台&#xff0c;有人说它鸡肋&#xff0c;有人说它有用&#xff0c;有人说它轮子&#xff0c;众说纷纭&#xff0c;不如从自身出发&#xff0c;考虑是否要做测试平台&#xff1a; 第 1 阶段&#xff0c;用 Pythonrequests 写接口自动化。 第 2 阶段&#xff0c;选择 unit…

Excel技能之数据安全,老板让我加个锁

金融、管理、财务各个领域和行业&#xff0c;重要的数据&#xff0c;没有保护手段&#xff0c;像在大街上裸奔一样。数据安全的重要性&#xff0c;必须刻在骨子里。 机密文件、商业文件、财务报表、销售业绩、工资&#xff0c;以及不想让别人修改的只读文件&#xff0c;都可以…

vue 高德地图设置鼠标样式

高德地图JS API 2.0 设置鼠标样式在线示例 首先&#xff0c;在 index.html 中引入图标&#xff1a; <link rel"stylesheet" href"https://at.alicdn.com/t/font_873139_0v65kqy674.css" >封装工具文件 utils/map.js &#xff1a; export default …

2023最新MYSQL面试题总结

​ MYSQL 简介&#xff1a; MySQL数据库是一种开源的关系型数据库管理系统&#xff0c;它支持多用户、多线程、多个存储引擎&#xff0c;可以在各种操作系统上运行。MySQL的优点包括开源免费、性能高、稳定可靠、支持多种操作系统和编程语言、易于使用和管理等。MySQL的缺点包…

C++ 不常用的奇淫巧计

leetcode-剑指offerII 071.按权重生成随机数 给定一个正整数数组 w &#xff0c;其中 w[i] 代表下标 i 的权重&#xff08;下标从 0 开始&#xff09;&#xff0c;请写一个函数 pickIndex &#xff0c;它可以随机地获取下标 i&#xff0c;选取下标 i 的概率与 w[i] 成正比。 …