题解 | #日期差值#
日期差值
https://www.nowcoder.com/practice/ccb7383c76fc48d2bbc27a2a6319631c
#include <iostream> using namespace std; int GetMonthDay(int year,int month){ //求出该年该月对应的天数 static int arr[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; if(month==2) { if((year%4==0&&year%100!=0)||year%400==0) return arr[2]+1; } return arr[month]; } int GetYearDay(int year){ //求出该年对应的天数 if((year%4==0&&year%100!=0)||year%400==0) return 366; else return 365; } int Func(int year,int month,int day){ //计算该年该月该天距离1/1/1的天数 int count=0; for(int i=1;i<year;i++) count+=GetYearDay(i); for(int i=1;i<month;i++) count+=GetMonthDay(year, i); return count+day; } int main(){ int year1,month1,day1; int year2,month2,day2; scanf("%4d%2d%2d",&year1,&month1,&day1); scanf("%4d%2d%2d",&year2,&month2,&day2); int count1=Func(year1,month1,day1); int count2=Func(year2,month2,day2); if(abs(count2-count1)==1) cout<<2; else cout<<abs(count2-count1)+1; } // 64 位输出请用 printf("%lld")
牛客网刷题记录 文章被收录于专栏
本人认为值得记录的一些题