求助:从 1970 年一月一日经过 n 秒,输出这一秒的时刻,我的代码哪里错了?
#include <iostream>using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main()
{
int judge(int y);
long y=1970,m=1,d=1,h=0,mi=0,s=0,a,b;
long int n;
cin>>n;
s=s+n; //秒位加上n
mi=mi+s/60; //将秒位进到分钟位并保持不进位
s=(s>=60)?(s%60):s; //秒位进位取余
h=h+mi/60; //将分钟位进到小时位并保持不进位
mi=(mi>=60)?(mi%60):mi; //分钟位进位取余
d=d+h/24; //将小时位进位到天并保持天不进位
h=(h>=24)?(h%24):h; //小时位进位取余
a=(m==1||m==3||m==5||m==7||m==8||m==10||m==12);
b=(m==4||m==6||m==9||m==11);
while((m==2&&judge(y)==1&&d>29)||(m==2&&judge(y)==0&&d>28)||(a&&d>31)||(b&&d>30))
{
if(m==2) //判断是否是2月
{
if(judge(y)==1) //判断是否是闰年
{
d-=29;
}
else
{
d-=28;
}
}
else if(a)
{
d-=31;
}
else if(b)
{
d-=30;
}
m++;
if(m>12)
{
m=1;
y++;
}
}
cout<<y<<"-"<<m<<"-"<<d<<endl;
cout<<h<<":"<<mi<<":"<<s<<endl;
return 0;
}
/*****judge函数*********/
int judge(int y)
{
if(((y%4==0)&&(y%100!=0))||(y%400==0))
return 1;
else
return 0;
}