问题及代码
/*
* Copyright (c) 2014, 烟台大学计算机学院
* All rights reserved.
* 文件名称:test.cpp
* 作 者:辛彬
* 完成日期:2014年 12 月 23 日
* 版 本 号:v1.0
*
* 问题描述: 输出这是这一年中的第几秒。
* 输入描述:出生年、月、日、时、分、秒。
* 程序输出:第几秒;
*/
#include <iostream>
using namespace std;
struct Date
{
int year;
int month;
int day;
int hour;
int minute;
int second;
};
int day(int y,int m,int d);
int seconds(int h,int m,int s);
int secondss(int d,int s);
int main()
{
Date date;
int days,s,ss;
cout<<"请输入年、月、日、时、分、秒"<<endl;
cin>>date.year>>date.month>>date.day>>date.hour>>date.minute>>date.second;
days=day(date.year,date.month,date.day);
cout<<date.month<<"月"<<date.day<<"日是"<<date.year<<"年的第"<<days<<"天."<<endl;
s=seconds(date.hour,date.minute,date.second);
cout<<"这是这一天中的第"<<s<<"秒"<<endl;
ss=secondss(days,s);
cout<<"这是这一年中的第"<<ss<<"秒"<<endl;
return 0;
}
int day(int y,int m,int d)
{
int days=0;
int mon[13]= {0,31,28,31,30,31,30,31,31,30,31,30,31},i;
for(i=0; i<m; i++)
days+=mon[i];
if(((y%4==0&&y%100!=0)||y%400==0)&&m>2)
days++;
days+=d;
return days;
}
int seconds(int h,int m,int s)
{
int ss;
ss=h*60*60+m*60+s;
return ss;
}
int secondss(int d,int s)
{
int ss;
ss=(d-1)*24*60*60+s;
return ss;
}
运行结果:
学习感悟:稍微改了一下,函数现在返回整型值,方便其他函数调用。