时间计算
【题目描述】 给你两个日期,问这两个日期差了多少毫秒。
【输入格式】 两行,每行一个日期,日期格式保证为“YYYY-MM-DD hh:mm:ss”这种形 式。第二个日期时间一定比第一个日期时间要大两个日期的年份一定都是 21 世 纪的年份。
【输出格式】 一行一个整数代表毫秒数。
【样例输入 1】 2000-01-01 00:00:00 2000-01-01 00:00:01 【样例输出 1】 1000
【样例输入 2】 2000-01-01 00:00:00 2000-11-11 00:00:00 【样例输出 2】 27216000000
【数据范围与规定】 对于10%的数据,两个日期相同。 对于20%的数据,两个日期只有秒数可能不同。
对于30%的数据,两个日期只有秒数、分钟数可能不同。 对于40%的数据,两个日期的年月日一定相同。 对于60%的数据,两个日期的年月一定相同。
对于80%的数据,两个日期的年份一定相同。 P73 第二题 第 3 页
对于100%的数据,两个日期一定都是 21 世纪的某一天,且第二个日期一定 大于等于第一个日期。
思路:
模拟吧,好麻烦,搞错一个变量,幸好检查出来了,但只改了一处其他地方没改。。。
第一遍90 第二遍100
#include<iostream> #include<cstdio> #include<queue> #include<vector> #include<algorithm> #include<cstring> using namespace std; long long yeara,moutha,daya,aa,ba,ca; long long yearb,mouthb,dayb,ab,bb,cb; long long ans; int main() { freopen("two.in","r",stdin); freopen("two.out","w",stdout); char c1,c2,c3,c4,c5,c6; scanf("%lld%c%lld%c%lld%c%lld%c%lld%c%lld",&yearb,&c1,&mouthb,&c2,&dayb,&c3,&ab,&c4,&bb,&c5,&cb); scanf("%lld%c%lld%c%lld%c%lld%c%lld%c%lld",&yeara,&c1,&moutha,&c2,&daya,&c3,&aa,&c4,&ba,&c5,&ca); if(yeara==yearb) { for(long long i=mouthb+1;i<=moutha-1;i++) { if(i==1||i==3||i==5||i==7||i==8||i==10||i==12) ans+=1LL*31*24*60*60; else if(i==4||i==6||i==9||i==11) ans+=1LL*30*24*60*60; else if(i==2) if((yearb%4) ==0) ans+=29LL*24*60*60; else ans+=28LL*24*60*60; } if(moutha>mouthb) { ans+=(daya)*24LL*60*60; if(mouthb==1||mouthb==3||mouthb==5||mouthb==7||mouthb==8||mouthb==10||mouthb==12) ans+=(31-dayb)*1LL*24*60*60; else if(mouthb==4||mouthb==6||mouthb==9||mouthb==11) ans+=(30-dayb)*1LL*24*60*60; else if(mouthb==2) if((yeara%4) ==0) ans+=(29-dayb)*1LL*24*60*60; else ans+=(28-dayb)*1LL*24*60*60; }else ans+=(daya-dayb)*24LL*60*60; ans+=(aa-ab)*60*60LL; ans+=(ba-bb)*60LL; ans+=(ca-cb); cout<<ans*1000; return 0; }else { for(int i=yearb+1;i<=yeara-1;i++) if(i%4) ans+=365LL*24*60*60; else ans+= 366LL*24*60*60; for(long long i=1;i<=moutha-1;i++) { if(i==1||i==3||i==5||i==7||i==8||i==10||i==12) ans+=1LL*31*24*60*60; else if(i==4||i==6||i==9||i==11) ans+=1LL*30*24*60*60; else if(i==2) if((yeara%4) ==0) ans+=29LL*24*60*60; else ans+=28LL*24*60*60; } for(int i=mouthb+1;i<=12;i++) { if(i==1||i==3||i==5||i==7||i==8||i==10||i==12) ans+=1LL*31*24*60*60; else if(i==4||i==6||i==9||i==11) ans+=1LL*30*24*60*60; else if(i==2) if((yearb%4) ==0) ans+=29LL*24*60*60; else ans+=28LL*24*60*60; } if(mouthb==1||mouthb==3||mouthb==5||mouthb==7||mouthb==8||mouthb==10||mouthb==12) ans+=(31-dayb)*1LL*24*60*60; else if(mouthb==4||mouthb==6||mouthb==9||mouthb==11) ans+=(30-dayb)*1LL*24*60*60; else if(mouthb==2) if((yearb%4) ==0) ans+=(29-dayb)*1LL*24*60*60; else ans+=(28-dayb)*1LL*24*60*60; ans+=(daya)*24LL*60*60; ans+=(aa-ab)*60*60LL;//上边改了,这里没改 ans+=(ba-bb)*60LL; ans+=(ca-cb); cout<<ans*1000; // cout<<ans/3600/24; return 0; } return 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App