王道机试指南——日期处理

王道机试指南(第二版)——题目OJ链接 计算机考研复试 阅读详情

王道机试指南——日期处理


只要把握住这类问题的核心,解决这类问题就不会再有太大的难度。

这类问题的核心思路是:

1)需要构建闰年和平年的二维数组,如:

int months[13][2] = {
{0,0},//占用空位,方便后续程序处理
{31,31}, 
{28,29},
{31,31},
{30,30},
{31,31},
{30,30},
{31,31},
{31,31},
{30,30},
{31,31},
{30,30},
{31,31},
};
//第一维表示平年,第二维表示闰年

2)如何判断闰年?

如果该年的年份可以被 400整除,并且可以被4整除,但是不能被100整除,则该年是闰年。用代码表示如下:

int run_years (int year){
	if (year % 4 == 0 && year %100 != 0 || year % 400 == 0) return 1;
	else return 0;
	}

这里的函数返回结果很巧妙,如果返回的值是0,那么刚好对应上述months二维数组的第一维即平年,如果返回的值是1,刚好对应months二维数组的第二维即闰年。

3)最后关键的是如何得到两个日期之间的总天数

这里我们的思路是让计算机一个一个去数,对的,像人一样一个一个去数两个日期之间相隔多少天。

完整的代码如下:

#include<iostream>
#include<string>
using namespace std;

int months[13][2] = {
{0,0},
{31,31}, 
{28,29},
{31,31},
{30,30},
{31,31},
{30,30},
{31,31},
{31,31},
{30,30},
{31,31},
{30,30},
{31,31},
};

int run_years (int year){
	if (year % 4 == 0 && year %100 != 0 || year % 400 == 0) return 1;
	else return 0;
	}

int main(){
	 int number1,number2;
	 cin >> number1 >> number2;
	 int year1 = number1 / 10000;
	 int month1 = number1 %10000 / 100;
	 int day1 = number1 % 100;
	 
     int year2 = number2 / 10000;
     int month2 = number2 %10000 / 100;
     int day2 = number2 % 100;
     
     int ans = 1;

 while(year1 < year2 || month1 < month2 || day1 < day2){
 	day1++;
 	if (day1 == months[month1][run_years(year1)]+1){
 		month1++;
 		day1 = 1;
	 }
	 

	if (month1 == 13){
		month1 = 1;
		year1++;
	}
	ans++;

 }

 cout << ans; 
}
【王道机试笔记02】日期类问题 日期类问题 例2.3 日期差值 代码 2.6 通过预处理将日期和原点(00000101)的差值存储在数组中,求两个日期差值转换为求两个日期和原点距离的差值。 我们在过程中定义了一个宏来判断日期是否在闰年中。 #include<iostream> #include<stdlib.h> #define isRun(x) x % 4 == 0 && x % 100... 阅读详情

相关推荐

王道机试指南 复试机试高频考点精讲day1

本文详细解析了计算机专业研究生复试机试的高频考点,包括数字枚举、日期处理、字符串转换、区间合并等题型,并提供了实用的解题技巧和代码示例。特别针对清华、北大等顶尖高校的命题规律,帮助考生快速建立解题框架,提升机试通过率。

weixin_30307921的博客 713

Codeup 问题 A: 日期差值

codeup问题A日期差值 个人测试通过了 给各位大神看客老爷放个图 在vscode里进行编译的,vs也可以看个人喜好吧 ok咱们直接上代码 #include<iostream> #include<cstdio> using namespace std; int month[13][2] = { {0,0},{31,31},{28,29},{31,31},{30,30},{31,31},{30,30},{31,31},{31,31},{30,30},{31,31}, {30,3

老拆的博客 185

菜鸟的机试准备——王道机试指南&&算法笔记

这里写目录标题日期问题所需知识:常见输出格式样例——场宽 日期问题 今天第几天?(清华) #include <iostream> #include <cstdio> using namespace std; int month_tab[2][13]= { {0,31,28,31,30,31,30,31,31,30,31,30,31}, {0,31,29,31,30,31,30,31,31,30,31,30,31} }; bool is_leapyear(int

电量过低警告 874

王道机试指南 复试机试准备day1

有一个长度为整数L(1<=L<=10000)的马路,可以想象成数轴上长度为L的一个线段,起点是坐标原点,在每个整数坐标点有一棵树,即在0,1,2,…输入是一个个的三元组,分别是,外筐尺寸n(n为满足0<n<80的奇整数),中心花色字符,外筐花色字符,后二者都为ASCII可见字符;求满足条件的所有a、b、c的值。输入可能有多组测试数据,对于每一组测试数据, 输出一个整数,代表Input中的年、月、日对应本年的第几天。可能有多组输入数据,对于每组输入数据,输出一个数,表示移走所有区间的树之后剩下的树的个数。

m0_46304590的博客 1565

Mac本地大模型实战指南:Ollama+Metal+Apple Silicon深度优化

大语言模型(LLM)本地化部署正成为开发者关键技术能力,其核心在于推理效率、硬件适配与成本控制。Apple Silicon凭借统一内存架构(UMA)和Neural Engine,为本地LLM运行提供了独特优势;Metal加速则显著提升GPU计算吞吐,使Gemma 4、Qwen 3.5等模型在M系列Mac上实现低延迟、高精度、离线可用的工程落地。相比云端API,本地方案规避了token计费、网络依赖与数据外泄风险,特别适用于企业文档处理、实时语音分析、私有知识库检索等强隐私、低时延场景。本文聚焦Mac平台,系

weixin_33443333的博客 351

在MacBook M1/M2上,手把手教你打包包含嵌入模型的RagFlow Docker镜像(避坑指南)

本文详细指导如何在MacBook M1/M2上构建ARM64架构的RagFlow Docker镜像,涵盖环境准备、依赖处理、镜像构建及性能优化全流程。特别针对Apple Silicon芯片的兼容性问题提供解决方案,帮助开发者高效完成本地开发环境搭建。

weixin_26908317的博客 241

王道机试指南NO.3日期差值

题目要求 时间限制:1s 内存限制:32MB 题目描述 有两个日期,求两个日期之间的天数,如果两个日期是连续的我们规定他们之间的天数为两天。 输入 有多组数据,每组数据有两行,分别表示两个日期,形式为YYYYMMDD 输出 每组数据输出一行,即日期差值 样例输入 20110412 20110422 样例输出 11 题目分析 1、求两个日期间的天数差,即求分别以两个特定的...

IT圈的01羊的博客 209

RoboMaster新手必看:用STM32 HAL库搞定大疆M3508电机正反转(附完整代码)

本文详细介绍了如何使用STM32 HAL库驱动大疆M3508电机实现正反转控制,包括硬件准备、PWM配置、电机校准及完整代码实现。特别针对RoboMaster新手常见问题提供了解决方案,如电机抖动、不转等故障排查,并分享了缓启动、DMA更新等进阶技巧,帮助开发者快速掌握电机控制核心技术。

weixin_42519985的博客 225

ACM:《王道机试指南》

前言: 这篇博客是对《王道——机试指南》一些题目汇总 文章目录第二章:经典入门 第二章:经典入门 题目名称 题目标签 题目难度 解题报告 EXCEL排序 sort分情况排序 2 戳这里 ...

Wangpeiyi9979的博客 504

网络虚拟化介绍(OVS、DVS)

网络虚拟化概念网络虚拟化就是把网络层的一些功能从硬件中剥离出来,建立新的网络虚拟层;该虚拟层可以接管网络服务和配置,实现网络服务与物理层的解耦,打破物理资源限制;通过网络虚拟层能够在一个物理网络上模拟出多个逻辑网络,并且多用户在逻辑网络上相互隔离,保证网络安全网络虚拟化的特点隔离性:不同租户的流量相互之间不能互访;但是IP/MAC地址都可以独立规划可移动性:虚拟机可以跨二层/三层迁移,甚至可以跨广域网迁移(迁移前后虚拟机Vlan和IP地址都不会发生变化)可扩展性:逻辑网络的规模和数量可扩展。

m0_49864110的博客 1万+

052、联发科Imagiq HyperEngine架构适配:天玑9000/9200的ISP多核并行调度与Tuning Toolkit调优案例

摘要: 项目组在适配联发科天玑9200的Imagiq 890 ISP架构时,遇到多摄预览功耗过高、帧率不稳等问题。通过分析多核调度机制,调整辅核QoS通道、优化AI-ISP协同模式(采用FREERUN+运动补偿),并利用Tuning Toolkit的Pipeline Viewer动态分配负载,最终降低功耗30mA、提升画质。关键经验包括:避免多核带宽冲突、合理配置动态时钟策略,以及统一校准参数版本管理。天玑9000/9200的HyperEngine架构需优先理解多核协同逻辑,再针对性调优,否则易引发场景兼容

zzfmlxs的博客 33

日期类问题----机试自学手记(2)

小艺的机试自学打卡

默默小艺的博客 383

踩遍Windows所有坑:Codex CLI桌面端+命令行双环境安装避坑实战

Windows下装Codex CLI的坑,本质上都是Windows本身的路径、环境变量、权限、编码这些历史遗留问题,和工具本身关系不大。只要避开中文路径、正确配置PATH、注意终端环境差异,其实安装非常简单。这套双环境方案配好之后,桌面端适合可视化调试、多会话管理,终端适合嵌入编辑器、脚本调用,一套配置两边通用,体验还是很流畅的。按照上面的流程走,基本不会出大问题,就算出问题也能在排查表里找到对应解法。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 297

王道机试指南--日期类

文章目录日期差值 日期差值 题目2.3链接日期差值 题目大意:求两个输入日期的差值,例如:20110412和20110422。并且规定连续的两天相差天数为2天。 思路:此类问题为区间问题,即求两个界限之间的区间长度,解决此类问题有一个统一的思想——把原区间问题统一到起点确定的区间问题上去,即计算二者与起点的差值,再将二者的差值相减,即可得到区间长度。 方法一:直接计算法。写一个函数来计算任意一个日...

Accept1234的博客 393

用一组可复现实验讲清 ABAP 内表 Standard / Sorted / Hashed 的性能差异

摘要(150字): SAP项目中性能问题常源于ABAP内表选型不当。标准表(STANDARD TABLE)写入快但查找慢(线性扫描),适合遍历场景;排序表(SORTED TABLE)保持有序,支持二分查找,适合范围查询;哈希表(HASHED TABLE)基于唯一键实现常数级查找,适合高频精确匹配。实验表明:标准表+BINARY SEARCH需预排序,成本可能高于直接使用排序表;哈希表在键匹配时性能最优。Gateway和RAP场景中,内表选型直接影响接口响应,建议根据读写负载(追加/遍历/精确查找)选择对应类

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 200

海康DS-7604N-K1/RTB固件包

【摘要】海康DS-7604N-K1/RTB萤石云设备发布V4.30.091版本升级程序(2022.09.19),仅适用于指定型号。升级前需先升级至V3.4.106基础版本,刷机会重置设备为未激活状态,需重新设置admin密码。该机型支持密码/手势登录,无密码时可通过U盘升级。注意事项:升级存在风险,需确认程序适用性;升级过程严禁断电;必须阅读压缩包内的刷机说明。此为定制机型,非必要不建议升级。(150字)

海康威视技术支持 1568

王道机试课程总结

3)例题2.1 abc 先设计算法3个for循环,分析复杂度,与题目数据量进行对比,得出结果可以使用。4)多组输入,指定跳出:利用while循环输出多组数据,用if,break语句实现指定跳出。2)操作:1查询代码讲解,2合并代码讲解,3路径压缩代码讲解,4树高低代码讲解。3) 第k大数, 快速排序讲解, 快速排序代码讲解,改进求第k大数。2)例题8.3Fibonacci(分治法,递推法,矩阵快速幂,公式法)2)逆序数对,归并排序讲解,归并排序、求逆序数算法代码讲解。

m0_57741101的博客 1097

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

王道机试二 日期类问题

日期类问题 求两天之间的时间差 统一的思想:将两个日期之差转换为这两个日期与0000年1月1日的日期差的差值。 好处是预处理,能够把所有的日期差存起来,这就是空间换时间的思想。 然后还有一个需要注意的是闰年的处理。在不被100整除的情况下被4整除,或者被四百整除 #define isYeap(x) x%100!=0 && x&40 || x%4000 ?1:0 存储一个数组,存储闰年/非闰年 每个月有多少天 定义一个结构,存储天,月,年,还有一个函数,计算下一天的年月日 #inclu

XIONGDA的博客 290

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

【王道机试】| | 日期类问题

题目描述: 有两个日期,求两个日期之间的天数,如果两个日期是连续的我们规定他们之间的天数为两天 输入: 有多组数据,每组数据有两行,分别表示两个日期,形式为YYYYMMDD 输出: 每组数据输出一行,即日期差值 做题思路: 对于日期类:年月日,就像学生信息一样,用结构体处理。 struct Date{ int year; int month; int day; status fun();//待添加 } 这里提出一个新的概念:预处理 首先无论输入的两行数字是什么,我们不妨都初始化一个日期ini

weixin_44270398的博客 562

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

王道机试指南-代码-P16日期问题

考点: 平年是date.year%4==0&&date.year%100==0;否则是闰年 平年二月是28天,闰年是29天 /*计算天数*/ int caldays(Date date) { int result=date.day; int runnian_days[]={31,29,31,30,31,30,31,31,30,31,30,31}; int pingnia...

zoe9698的博客 251

王道机试

一、基本常识 一、不同返回结果:   1、Accepted(答案正确)   2、Wrong Answer(答案错误) 解决方案:(1)如果对设计算法正确性有较大的把握,可以考虑是否是存在某些特殊数据导致错误。   3、Presentation Error(格式错误)系统判定你的程序输出“好像”正确,只是没有按照题目中所要求的输出格式来输出答案。可 ...

aiji2909的博客 189

《王道机试》:笔记(一)经典入门

《王道机试》学习笔记1、排序在c++中,推荐使用sort方法,进行块排sort比较升序,如果想用降序可以重写布尔方法,调用时sort(a,a+n,compare)bool compare(int a,int b){ if(a&gt;b)return true; else return false; }对于结构体的复杂排序,也可以使用自定义的布尔方法。首先按成绩由低到高,成绩相同时按照年龄从低到高b...

宴夜小丑的博客 1357

王道机试指南NO.4Day Of Week

时间限制:1s 内存限制:32MB 题目描述 输入一个日期,要求输出该日期为星期几 输入样例 9 October 2001 14 October 2001 输出样例 Tuesday Sunday 题目分析 1、日期类问题,先预处理出每个日期与原点日期(0年1月1日)之间的天数间隔,存入buf三维数组。 2、看到题目考虑两个问题: ①今天星期几? ②今天和给定日期相隔几...

IT圈的01羊的博客 259

王道机试 第二章 暴力求解 2.2 模拟 2、日期问题

王道机试 第二章 暴力求解 2.2 模拟 2、日期问题 例2.6 今年的第几天?(清华大学上机复试题) 闰年判断 这里需要注意的是,闰年的定义是:能被4整除且不能被100整除,或者能被400整除的年份。 #include <iostream> #include <cstdio> using namespace std; int a[] = {31, 28, 31, 3...

Patience 241

王道机试指南读后总结-1

为了准备一下竞赛,开始从基础的研究生机试题刷起。今天看完了第二章大部分,第二章主要是介绍了排序、日期类问题、Hash、排版问题、查找、贪心等在机试中频繁出现的基本算法。 对于排版问题,一般来说可以看样例输出的格式,通过样例的格式推出到一般形式。但是由于输出一般来说是从左向右,从上到下,如果规律是一圈一圈的那种,就要先用二维数组存储需要打印的图案,然后再输出,也就是先通过定位左上点法、循环的方式去

kaggle expert,全球排名前1000,清华计算机研究生,兴趣算法工程 3573

王道机试2.2:日期类问题

(题目暂时不写了,主要是为了保研整理的资料,日后再进行补充) 实现代码: #include<stdio.h> #define ISYEAP(x) x%100!=0&&x%4==0||x%400==0?1:0 int dayOfMonth[13][2] = { 0,0, 31,31, 28,29, 31,31, 30,30, 31,31, 30,30, 3...

欢迎来到关关雎鸠儿的博客 211
上一篇: 王道机试指南指南笔记-排序题
下一篇: 线性回归中的梯度下降法代码
mAN_DOm
博客等级 码龄8年 13粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值