题解 | 日期差值
日期差值
https://www.nowcoder.com/practice/ccb7383c76fc48d2bbc27a2a6319631c
#include <stdio.h> using namespace std; int Nextday(int year){ int year1=year/10000; int month=(year/100)%100; int day=year%100; int arr[]={ 0,31,28,31,30,31,30,31,31,30,31,30,31 }; int isLeap=year1%400==0||year1%4==0&&year1%100!=0; if(isLeap){ arr[2]=29; }else{ arr[2]=28; } ++day; if(day>arr[month]){ ++month; day=1; } if(month>12){ ++year1; month=1; } return year1*10000+month*100+day; } int main(){ int year1,year2; scanf("%d\n",&year1); scanf("%d",&year2); int allday=1; if(year1+1==year2){ allday=2; printf("%d\n",allday); } else{ int nextday=Nextday(year1); while(nextday!=year2){ ++allday; nextday=Nextday(nextday); } printf("%d\n",allday+1); } return 0; }