上机目的:掌握结构体
/*
* Copyright (c) 2011, 烟台大学计算机学院
* All rights reserved.
* 作 者:刘杰
* 完成日期:2013 年 3 月 13 日
* 版 本 号:v1.0
* 输入描述:
* 问题描述:
* 程序输出:
* 问题分析:
* 算法设计:略
*/
#include<iostream>
using namespace std;
bool ruinian(struct Time a);//判断瑞年
int Dday(struct Time a);//每月几天
int year_day(struct Time a);
int day_second(struct Time a);
int year_second(struct Time a);
struct Time
{
int year;
int month;
int day;
int hour;
int minute;
int second;
};
int main()
{
Time t;
cout<<"请输入年月日时分秒"<<endl;
cin>>t.year>>t.month>>t.day>>t.hour>>t.minute>>t.second;
cout<<" 该日为本年第:"<<year_day(t)<<"天。"<<endl<<endl;
cout<<" 该秒为本日第:"<<day_second(t)<<"秒。"<<endl<<endl;
cout<<" 该秒为本年第:"<<year_second(t)<<"秒。"<<endl<<endl;
return 0;
}
bool ruinian(struct Time t)//判断是否为闰年;
{
if(t.year%400==0||(t.year%4&&t.year%100==0))
return true;
else
return false;
}
int Dday(struct Time t)
{
int day,a;
a=t.month;
switch(a)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:day=31;break;
case 4:
case 6:
case 9:
case 11:day=30;break;
case 2:
if(ruinian(t))
day=29;
else
day=28;break;
}
return day;
}
int year_day(struct Time t)//本年的第几天
{
int day,d=0;
for(int i=1;i<t.month;i++)
{
d+= Dday(t);
}
day=d+t.day;
return d;
}
int day_second(struct Time t)//当天第几秒
{
int s;
s=((t.hour*60+t.minute)*60+t.second);
return s;
}
int year_second(struct Time t)//当年第几秒
{
int s;
s=(year_day(t)-1)*86400+day_second(t);
return s;
}
结果: