上机目的:学会在主函数中完成求解
上机内容:玩转日期
/*
* 程序的版权和版本声明部分
* Copyright (c)2013, 烟台大学计算机学院学生
* All rightsreserved.
* 文件名称: date.cpp
* 作 者:刘玉金
* 完成日期:2013 年3月 24日
* 版本号: v1.0
* 输入描述:年月日
* 问题描述:输出对应的那一天是这一年的第几天
* 输出描述:第几天
*/
#include <iostream>
using namespace std;
struct Date
{
int year;
int month;
int day;
int hour;
int minute;
int second;
};
int main()
{
Date date;
cout<<"input year,month,day,hour,minute,second:";
cin>>date.year>>date.month>>date.day>>date.hour>>date.minute>>date.second;
int days;
int seconds;
int seconds2;
int i;
//月份处理
int x=0,y=0; //为方便分类,需对x,y赋初值
switch(date.month)
{
case 1:
x=0,i=0;
break;
case 2:
x=1,i=0;
break;
case 3:
x=1;
break;
case 4:
x=2;
break;
case 5:
x=2,y=1;
break;
case 6:
x=3,y=1;
break;
case 7:
x=3,y=2;
break;
case 8:
x=4,y=2;
break;
case 9:
x=5,y=2;
break;
case 10:
x=5,y=3;
break;
case 11:
x=6,y=3;
break;
case 12:
x=6,y=4;
break;
}
//是否为闰年
if((date.year%4==0&&date.year%100!=0)||(date.year%400==0))
i=29;
else i=28;
days=31*x+30*y+i+date.day;
cout<<date.month<<"月"<<date.day<<"日是"<<date.year<<"年的第"<<days<<"天."<<endl;
seconds=date.hour*60*60+date.minute*60+date.second;
cout<<date.hour<<"时"<<date.minute<<"分"<<date.second<<"秒是这天的"<<seconds<<"秒"<<endl;
seconds2=days*24*60*60+seconds;
cout<<date.month<<"月"<<date.day<<"日"<<date.hour<<"时"<<date.minute<<"分"<<date.second<<"秒时"<<date.year<<"年的第"<<seconds2<<"秒."<<endl;
return 0;
}
运行结果:
心得体会:开始不会,回头一想就会了