蒟蒻求助,大模拟BC后有6天时差(码风不好请见谅)
查看原帖
蒟蒻求助,大模拟BC后有6天时差(码风不好请见谅)
574890
zfy2006楼主2021/11/27 18:50
#include <bits/stdc++.h>
using namespace std;

int main(){
    int year=-4713,m=1,d=1,n,t;
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>t;
        year=-4713,m=1,d=1;
        while(t>0){
            if(year<0){
                if(m==1||m==3||m==5||m==7||m==8||m==10){
                    while(d<=31&&t>0){
                        d++;
                        t--; 
                    }
                    if(d>31){
                        m+=1;
                        d=1;
                    }

                }
                if(m==4||m==6||m==9||m==11){
                    while(d<=30&&t>0){
                        d++;
                        t--;
                    }if(d>30){
                        m+=1;
                        d=1;
                    }

                }
                if(m==2&&abs(year+1)%4==0){
                    while(d<=29&&t>0){
                        d++;
                        t--;
                    }if(d>29){
                        m+=1;
                        d=1;
                    }

                }
                if(m==2&&abs(year+1)%4!=0){
                    while(d<=28&&t>0){
                        d++;
                        t--;
                    }
                    if(d>28){
                        m+=1;
                        d=1;
                    }

                }
                if(m==12){
                    while(d<=31&&t>0){
                        d++;
                        t--; 
                    }
                    if(d>31){
                        year+=1;
                        m=1;
                        d=1;
                    }

                }

            }
            if(year==0) year++;
            if(year>0){
                if(m==1||m==3||m==5||m==7||m==8||m==10){
                    while(d<=31&&t>0){
                        d++;
                        t--;
                        if(year==1582&&m==10&&d==5) d=15;
                    }
                    if(d>31){
                        m+=1;
                        d=1;
                    }

                }
                if(m==4||m==6||m==9||m==11){
                    while(d<=30&&t>0){
                        d++;
                        t--;
                    }
                    if(d>30){
                        m+=1;
                        d=1;
                    }

                }
                if(m==2&&((year%4==0&&year%100!=0)||year%400==0)){
                    while(d<=29&&t>0){
                        d++;
                        t--;
                    }
                    if(d>29){
                        m+=1;
                        d=1;
                    }

                }
                if(m==2&&(year%4!=0||(year%100==0&&year%400!=0))){
                    while(d<=28&&t>0){
                        d++;
                        t--;
                    }if(d>28){
                        m+=1;
                        d=1;
                    }

                }
                if(m==12){
                    while(d<=31&&t>0){
                        d++;
                        t--; 
                    }
                    if(d>31){
                        year+=1;
                        m=1;
                        d=1;
                    }

                }
            }
        }

        cout<<d<<" "<<m<<" "<<abs(year)<<" ";
        if(year <0) cout<<"BC";
        cout<<endl;

    }
}
2021/11/27 18:50
加载中...