牛客 KY111 : 日期差值
程序员文章站
2024-02-29 12:09:46
...
#include<iostream>
using namespace std;
int arr[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
//计算一个日期与0000年1月1日的天数差
int getDay(int y, int m, int d){
//计算 0-y年的天数差
int days1 = y*365 + y/4 - y/100 + y/400;
//计算1 - (m-1)月天数差
int days2 = 0;
for(int i= 1; i < m; ++i){
days2 += arr[i];
}
// m > 2 并且为闰年时, 天数加1
if(m > 2 &&
(y % 4 == 0 && y % 100 != 0) || (y % 400 == 0))
days2++;
return days1 + days2 + d;
}
int main(){
int year1, month1, day1;
int year2, month2, day2;
scanf("%4d%2d%2d", &year1, &month1, &day1);
scanf("%4d%2d%2d", &year2, &month2, &day2);
//拿到两个日期与0000年1月1日的天数差
int n1 = getDay(year1, month1, day1);
int n2 = getDay(year2, month2, day2);
cout << abs(n1 - n2) + 1 << endl;
return 0;
}
上一篇: Android 图片特效如何实现及总结
下一篇: Java简单实现约瑟夫环算法示例