UVa 518 Time

发布时间:2026/7/14 6:13:18

UVa 518 Time
题目描述题目要求计算在两个时间点之间完整包含的给定时间周期年、月、日、时、分、秒的数量。时间点由年月日时分秒组成年份范围197019701970到203020302030日期合法。闰年规则能被444整除但不能被100100100整除或能被400400400整除的年份为闰年。输入格式输入包含多个数据块每个数据块有三行第一行666个整数表示起始时间点D1D_1D1​。第二行666个整数表示结束时间点D2D_2D2​D1D2D_1 D_2D1​D2​。第三行一个整数和一个单词表示周期长度和单位year、month、day、hour、minute、second。每个数据块后有一个空行。输出格式对于每个数据块输出一行一个整数表示D1D_1D1​到D2D_2D2​之间完整包含的周期数。样例输入1997 12 31 23 59 59 1998 1 1 0 0 0 1 second 2000 2 29 0 0 0 2000 2 29 23 59 59 1 day 2000 2 29 0 0 0 2000 3 1 0 0 0 24 hour 1996 12 31 20 30 0 1997 1 1 7 30 0 60 minute 1996 12 31 20 30 0 1997 1 1 7 30 0 1 hour输出1 0 1 11 10题目分析本题的核心是计算两个时间点之间完整包含的周期数。需要根据单位分别计算并考虑闰年和月份天数的变化。计算方法对于给定的起始时间D1D_1D1​和结束时间D2D_2D2​计算从D1D_1D1​的下一时刻到D2D_2D2​的指定时间单位数量然后除以周期长度。具体实现对于年计算D1D_1D1​之后第一个整年的起始时刻到D2D_2D2​之前最后一个整年的结束时刻之间的整年数。对于月类似地计算整月数。对于日、时、分、秒将D1D_1D1​的下一时刻到D2D_2D2​的时刻之间的总秒数或分钟、小时、天数除以周期长度。边界处理起始时间点的当前单位不计入例如从23:59:59到00:00:00的111秒区间包含111个完整秒。闰年影响二月的天数。输出整数除法结果向下取整。复杂度分析每个数据块O(1)O(1)O(1)计算。代码实现// Time// UVa ID: 518// Verdict: Accepted// Submission Date: 2017-04-29// UVa Run Time: 0.010s//// 版权所有C2017邱秋。metaphysis # yeah dot net#includebits/stdc.husingnamespacestd;intyear1,month1,day1,hour1,minute1,second1;intyear2,month2,day2,hour2,minute2,second2;longlongperiod;string unit;intdaysInMonth[13]{0,31,28,31,30,31,30,31,31,30,31,30,31};boolisLeapYear(intyear){return(year%4000)||(year%40year%100!0);}longlonggetYears(){longlongyears0;for(intiyear11;iyear2;i)years;returnyears;}longlonggetMonths(){longlongmonthsgetYears()*12;if(year1!year2){for(intimonth11;i12;i)months;for(inti1;imonth2;i)months;}else{for(intimonth11;imonth2;i)months;}returnmonths;}longlonggetDays(){longlongdays0;for(intiyear11;iyear2;i)days(isLeapYear(i)?366:365);intstartday11;if(hour10minute10second10)startday1;if(year1!year2){for(intimonth11;i13;i){if(i2)days(isLeapYear(year1)?29:28);elsedaysdaysInMonth[i];}for(inti1;imonth2;i){if(i2)days(isLeapYear(year2)?29:28);elsedaysdaysInMonth[i];}}else{for(intimonth11;imonth2;i){if(i2)days(isLeapYear(year1)?29:28);elsedaysdaysInMonth[i];}}if(year1!year2||month1!month2){inttotalDays0;if(month12)totalDays(isLeapYear(year1)?29:28);elsetotalDaysdaysInMonth[month1];for(intistart;itotalDays;i)days;for(inti1;iday2;i)days;}else{for(intistart;iday2;i)days;}returndays;}longlonggetHours(){longlonghoursgetDays()*24;intstarthour11;if(minute10second10)starthour1;if(year1!year2||month1!month2||day1!day2){if(hour1!0||minute1!0||second1!0)for(intistart;i24;i)hours;for(inti0;ihour2;i)hours;}else{for(intistart;ihour2;i)hours;}returnhours;}longlonggetMinutes(){longlongminutesgetHours()*60;intstartminute11;if(second10)startminute1;if(year1!year2||month1!month2||day1!day2||hour1!hour2){if(minute1!0||second1!0)for(intistart;i60;i)minutes;for(inti0;iminute2;i)minutes;}else{for(intistart;iminute2;i)minutes;}returnminutes;}longlonggetSeconds(){longlongsecondsgetMinutes()*60;if(year1!year2||month1!month2||day1!day2||hour1!hour2||minute1!minute2){if(second1!0)for(intisecond1;i60;i)seconds;for(inti0;isecond2;i)seconds;}else{for(intisecond1;isecond2;i)seconds;}returnseconds;}intmain(intargc,char*argv[]){cin.tie(0),cout.tie(0),ios::sync_with_stdio(false);while(cinyear1){cinmonth1day1hour1minute1second1;cinyear2month2day2hour2minute2second2;cinperiodunit;if(unityear)cout(getYears()/period);if(unitmonth)cout(getMonths()/period);if(unitday)cout(getDays()/period);if(unithour)cout(getHours()/period);if(unitminute)cout(getMinutes()/period);if(unitsecond)cout(getSeconds()/period);cout\n;}return0;}

相关新闻

UVa 517 Word

UVa 517 Word

2026/7/8 4:40:12

题目描述 题目要求模拟一个长度为 nnn 的循环单词的演化过程。单词由字母 a 和 b 组成,循环意味着首尾相邻。每个位置 iii 的下一状态由该位置及其左右邻居(位置 i−2i-2i−2、iii、i1i1i1)的当前字母共同决定,共有 2382^3 8238 …

【QT】国产化编译指南7

【QT】国产化编译指南7

2026/7/8 2:54:21

qt-everywhere-opensource5.12.6.zip与.tar.xz的区别qt-everywhere-opensource-src-5.12.6.zip 和 qt-everywhere-opensource-src-5.12.6.tar.xz 是 Qt 5.12.6 开源完整源码包的两种不同压缩格式,核心内容(源码文件)完全一致,主要…

在 PMP(项目管理专业人士)考试中,“领导力、团队建设、冲突管理、利益相关者参与”构成了人(People)这一核心领域的核心考点

在 PMP(项目管理专业人士)考试中,“领导力、团队建设、冲突管理、利益相关者参与”构成了人(People)这一核心领域的核心考点

2026/7/8 12:58:27

在 PMP(项目管理专业人士)考试中,“领导力、团队建设、冲突管理、利益相关者参与”构成了人(People)这一核心领域的核心考点(在考题中占比高达 42%)。尤其在敏捷(Agile)和…

YOLOv8蜜蜂识别检测系统:从环境配置到实战部署完整指南

YOLOv8蜜蜂识别检测系统:从环境配置到实战部署完整指南

2026/7/14 6:06:55

这次我们来看一个基于YOLOv8的蜜蜂识别检测系统,这是一个完整的目标检测项目,包含源码、数据集、模型权重和UI界面。对于想要学习YOLOv8实战应用或者需要开发农业监测、生物识别系统的开发者来说,这个项目提供了很好的起点。YOLOv8作为YOLO系…

2025年C++性能分析工具全景指南:从Perf到eBPF的实战工作流

2025年C++性能分析工具全景指南:从Perf到eBPF的实战工作流

2026/7/14 6:06:55

1. 项目概述:为什么C开发者必须关注性能分析工具?如果你是一名C开发者,无论你是深耕于游戏引擎、高频交易系统、嵌入式设备还是大规模后端服务,性能这个词一定是你日常工作中绕不开的“紧箍咒”。C以其对硬件资源的直接掌控能力和…

零信任彻底普及!2026企业网安标配:永不信任、永远验证

零信任彻底普及!2026企业网安标配:永不信任、永远验证

2026/7/14 6:06:55

📌 三句大白话,搞懂零信任爆火原因第一:传统边界安全彻底失效,零信任成唯一解。以前企业靠防火墙、内网外网隔离防护,现在远程办公、云办公、移动设备接入常态化,固定网络边界彻底瓦解,传统“内…

Mellanox IB卡驱动安装与模式切换实战解析

Mellanox IB卡驱动安装与模式切换实战解析

2026/7/14 6:06:55

1. Mellanox IB卡驱动安装全攻略 刚拿到Mellanox IB卡时,我最头疼的就是驱动安装。经过多次实战,我总结出一套适合新手的安装流程。以CentOS 8.2系统为例,当你把CX354A卡插入PCIe插槽后,系统其实已经自带了mlx4_core内核驱动。用…

无密码认证全面来袭!2026告别密码泄露,FIDO2成安全新标配

无密码认证全面来袭!2026告别密码泄露,FIDO2成安全新标配

2026/7/14 6:06:55

📌 三句大白话,读懂无密码安全革命第一:密码本身,就是最大的安全漏洞。弱密码、重复密码、密码泄露、暴力破解、钓鱼套取,90%的账号安全事故,根源都在“密码认证体系”本身,传统密码早已无法适配…

Wand-Enhancer:如何免费解锁WeMod专业版功能并实现远程控制?

Wand-Enhancer:如何免费解锁WeMod专业版功能并实现远程控制?

2026/7/14 5:56:55

Wand-Enhancer:如何免费解锁WeMod专业版功能并实现远程控制? 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/GitHub_Trending/we/Wand-Enhancer 还在为WeMod&a…

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践

2026/7/13 7:41:16

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator XUnity.AutoTranslator作为Unity游戏社区中最成熟的文本翻译解决方…

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持

2026/7/13 20:43:19

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持 【免费下载链接】raspberrypi-kernel It provides openEuler kernel source for Raspberry Pi 项目地址: https://gitcode.com/openeuler/raspberrypi-kernel 前往项目官网免费下载&…

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧

2026/7/13 20:43:10

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧 【免费下载链接】integration-test The repo contains test suits for system integration test 项目地址: https://gitcode.com/openeuler/integration-test 前往项目官网免费下载:…

XUnity.AutoTranslator 游戏实时翻译插件:从原理到实战的完整指南

XUnity.AutoTranslator 游戏实时翻译插件:从原理到实战的完整指南

2026/7/14 0:06:37

1. 项目概述:当游戏语言成为一堵墙作为一名玩了十几年日系、欧美独立游戏的“老油条”,我太懂那种面对一款心仪已久、画风玩法都戳中G点的游戏,却因为语言不通而望而却步的痛了。尤其是那些基于Unity引擎开发的、体量不大但内容精良的作品&am…

2026普通文员学数据分析的价值

2026普通文员学数据分析的价值

2026/7/14 0:06:37

一、2026年普通文员学习数据分析的必要性随着数字化转型加速,数据分析技能正逐渐成为职场基础能力。普通文员学习数据分析可以提升工作效率、增强竞争力,并为职业转型提供更多可能性。二、数据分析对文员的价值自动化办公:通过数据分析工具&a…

2026从计划员到主管,生产管理者学数据分析有用吗?

2026从计划员到主管,生产管理者学数据分析有用吗?

2026/7/14 0:06:37

一、生产管理领域的职业发展路径 从计划员到主管的角色转变,是生产管理者职业发展的典型路径。计划员主要负责生产排程、库存管理和资源协调等基础工作,而主管则需要承担团队管理、决策支持和效率优化等更高级别的职责。这种转变不仅仅是职位的提升&…