高斯日志--日期换算

思路:平年闰年天数不一样,每个月的天数也不一样,分别用数组存起来,拿总得天数倒减。

代码:

#include 
#include
using namespace std;
int isyear(int n)
{
    if(n%400==0||(n%4==0&&n%100!=0))return 1;
    return 0;
}
int main()
{
    int n,i;
    int year,month,day;
    int tol=246;
    int m[2][12]={{31,28,31,30,31,30,31,31,30,31,30,31},{31,29,31,30,31,30,31,31,30,31,30,31}};
    int k=1778;
    int y[2]={365,366};
    while(cin>>n)
    {
        k=1778;
        if(n<=246)
        {
            n--;
            i=4;
            if(n==0)cout<<"1777-04-30"<0)
            {
                n-=m[0][i];
                i++;
            }
            //cout<<"1777-"<0)
            {
                k++;
                n-=y[j];
                j=isyear(k);
            }
            int i=0;
            while(i<12&&n-m[j][i]>0)
            {
                n-=m[j][i];
                i++;
            }
            printf("%d-%02d-%02d\n",k,i+1,n);
        }

    }
    return 0;
}

你可能感兴趣的:(程序设计专栏)