/*
* Copyright (c) 2011, 烟台大学计算机学院
* All rights reserved.
* 作 者:王静
* 完成日期:2013 年 3 月 13 日
* 版 本 号:v1.0
* 输入描述:
* 问题描述:
* 程序输出:
* 问题分析:
* 算法设计:略
*/
#include <fstream>
#include <iostream>
using namespace std;
struct Time
{
int year;
int month;
int day;
int hour;
int minute;
int second;
};
int outday(Time);
int outdaysecond(Time);
int outyearsecond(Time);
void eternity(Time);
int d=10000;
int main()
{
Time time;
cout<<"请分别输入年,月,日,时,分,秒:"<<endl;
cin>>time.year>>time.month>>time.day>>time.hour>>time.minute>>time.second;
cout<<"该日是本年的第"<<outday(time)<<"天"<<endl;
cout<<"这是这一天的第"<<outdaysecond(time)<<"秒"<<endl;
cout<<"这是这一年的第"<<outyearsecond(time)<<"秒"<<endl;
eternity(time);
return 0;
}
int outday(Time time)
{
int day[13]={0,31,0,31,30,31,30,31,30,31,30,31,30},days=0;
if (time.year%4==0&&time.year%100!=0||time.year%400==0)
day[2]=29;
else
day[2]=28;
for(int i=0;i<time.month;i++)
{
days+=day[i];
}
days=days+time.day;
return days;
}
int outdaysecond(Time time)
{
int seconds;
seconds=time.hour*60*60+time.minute*60+time.second;
return seconds;
}
int outyearsecond(Time time)
{
int seconds,days;
days=outday(time);
seconds=time.hour*60*60+time.minute*60+time.second+days*24*60*60;
return seconds;
}
void eternity(Time time)
{
int i=1,day=0,months=0;
d=d+outday(time);
while(d>=365){
if (time.year%4==0&&time.year%100!=0||time.year%400==0)
d=d-366;
else
d=d-365;
time.year++;
};
while(d>=29)
{
int month[13]={0,31,0,31,30,31,30,31,30,31,30,31,30};
if (time.year%4==0&&time.year%100!=0||time.year%400==0)
month[2]=29;
else
month[2]=28;
d=d-month[i];
months++;
};
day=d;
cout<<"万日后是"<<time.year<<"年"<<months<<"月"<<day<<"日"<<endl;
}
运行结果:
(贴图)
心得体会: