#include <stdio.h>
#include <time.h>
void main()
{
time_t time_last;
time_last = time(NULL);
printf("%ld\n",time_last); //得到1970年到现在的秒数
unsigned long v;
while(1) //方便测试,一直可以输入
{
scanf("%ld",&v);
v = v+60*60*8; //我们位于东八区
int d = v/(60*60*24)+1; //得到距离1970年1月1日到输入秒数的天数
int n = (d+671)/1461; //求中间过了多少个2月29日
int year = (d-n)/365+1970; //得到年份
if((d-n)%365 == 0)
{
year = year -1;
}
int m[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31}; //定义月份天数表
if((year%400==0)||(year%4==0&&year%100!=0)) //判断平年闰年
{
m[2] = 29;
}
else
{
m[2] = 28;
}
int i;
int da = d - (d-n)/365*365-n; //减去该年前的前天,得到该年的第几天
int month,day;
for(i=0;i<12;i++)
{
if(da > m[i])
{
da = da - m[i]; //让天数减去每月的天数
}
if(da == 0)
{
month = i+1;
day = m[i+1];
}
if(da <= m[i+1] && da != 0) //如果得到小于或等于该月的天数,则可以确定为哪一天
{
month = i+1;
day = da;
break; //确定之后跳出循环
}
}
printf("%d-%d-%d\n",year,month,day);
int hour,minute,second;
hour = v%(3600*24)/3600;
minute = v%3600/60;
second = v%60;
printf("%d:%d:%d\n",hour,minute,second);
}
}
温馨提示:答案为网友推荐,仅供参考