1 条题解

  • 0
    @ 2025-10-10 20:13:35

    C++ :

    #include <bits/stdc++.h>
    using namespace std;
    
    int d[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31}; 
    
    bool leap(int n){
       if(n%4==0&&n%100!=0||n%400==0) return true;
       else return false;
    }
    
    void change(int y){
      if(leap(y)) d[2] = 29;
      else d[2] = 28;
    }
    
    int main(){
        int y1,m1,d1;
        int y2,m2,d2;
        int r = 0;
        cin>>y1>>m1>>d1>>y2>>m2>>d2;
        //计算完整的年份对应的日期差值
        int c = 0;//计算闰年的天数
        for(int i = y1+1;i <= y2 - 1;i++){
          if(leap(i)) c++;
        }
        
        r = (y2-y1-1) * 365 + c;//完全年份对应的日期差值
        
        change(y1);
        //计算y1年剩余的日子的日期差值
        r += d[m1] - d1 + 1;//当月的日期差值
        for(int i = m1 + 1;i <= 12;i++){
          r += d[i];
        }
    
        
        change(y2);
        //计算y2年剩余的天数
        for(int i = 1;i < m2;i++){
          r += d[i];
        }
    
        r += d2;
        
        cout<<r - 1;
        return 0;
    }
    
    
    
    • 1

    信息

    ID
    1097
    时间
    1000ms
    内存
    512MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者