# include & lttime.h & gt
void main()
{
time _ t time _ last
time_last = time(空);
printf("%ld\n ",time _ last);//獲取1970到現在的秒數。
無符號長v;
而(1) //易於測試,並且可以隨時輸入。
{
scanf("%ld ",& amp五);
v = v+ 60 * 60 * 8;//我們位於東八區。
int d = v/(60 * 60 * 24)+1;//獲取1970 65438+10月1到輸入的秒數之間的天數。
int n =(d+671)/1461;//中間過了幾個2月29日?
int year =(d-n)/365+1970;//獲取年份
如果((d-n)%365 == 0)
{
年份=年份-1;
}
int m[13] = {0,31,28,31,30,31,30,31,30,31,30,31 };//定義月份表中的日期
if((year % 400 = = 0)| |(year % 4 = = 0 & amp;& amp年份%100!=0)) //判斷平年閏年
{
m[2]= 29;
}
其他
{
m[2]= 28;
}
int I;
int da = d-(d-n)/365 * 365-n;//減去前天得到壹年中的某壹天。
int月,日;
for(I = 0;我& lt12;i++)
{
if(da & gt;m[i])
{
da = da-m[I];//讓天數減去每個月的天數。
}
如果(da == 0)
{
月= I+1;
day = m[I+1];
}
if(da & lt;= m[I+1]& amp;& amp大!= 0) //如果天數小於等於月份,可以確定是哪壹天。
{
月= I+1;
日= da
打破;//確認後跳出循環。
}
}
printf("%d-%d-%d\n ",年、月、日);
int小時、分鐘、秒;
小時= v %(3600 * 24)/3600;
分鐘= v % 3600/60;
秒= v % 60
printf("%d:%d:%d\n ",小時、分鐘、秒);
}
}