01. //02.* Copyright (c) 2013, 烟台大学计算机学院
02.//03.* All rights reserved.
03.//04.* 作 者:马德鹏
04.//05.* 完成日期:2014 年 3 月 9 日
05.//06.* 版 本 号:v1.0
#include <iostream>
using namespace std;
struct Date
{
int year; //date结构体
int month;
int day;
long hour;
long second;
long minute;
} date ;
void calculate(); //求你输入的时间d天后是哪年那月哪日;
void sort1(); //输出该日是本年的第几天;
void sort2(); //输出这是这一天的第几秒;
void output(); //输入一个时间,将时间保存在一个结构体变量中;
void outputExcellent(); //输出这是这一年的第几秒;
int main()
{
cout<<"请输入时间:"<<endl;
output();
cout<<endl;
sort1();
cout<<endl;
sort2(); // 调用各个函数功能
cout<<endl;
outputExcellent();
cout<<endl;
calculate();
return 0;
}
void output()
{
cin>>date.year>>date.month>>date.day>>date.hour>>date.minute>>date.second; //输入年,月,日,
cout<<endl;
cout<<"年"<<" "<<"月"<<" "<<"日"<<" "<<"小时"<<" "<<"分钟"<<" "<<"秒"<<endl;
cout<<date.year<<" "<<date.month<<" "<<date.day<<" "<<date.hour<<" "<<date.minute<<" "<<date.second;
}
void sort1()
{
int days=0;
int d[13]= {0,31,29,31,30,31,30,31,31,30,31,30,31}; //定义每月的天数
for(int i=1; i<date.month; i++)
{
days+=d[i];
days+=date.day; //判断月份,天数相加
}
if(((date.year%4==0&&date.year%100!=0)||(date.year%400==0))&&(date.month>=3))
days+=1;
cout<<date.month<<"月"<<date.day<<"日是"<<date.year<<"年的第"<<days<<"天.";
}
void sort2()
{
int num=0;
num=((date.hour*60+date.minute)*60)+date.second; //秒数相加
cout<<"这是这一天中的第"<<num<<"秒."<<endl;
}
void outputExcellent()
{
int days=0;
int d[13]= {0,31,29,31,30,31,30,31,31,30,31,30,31}; //定义每月的天数
for(int i=1; i<date.month; i++)
{
days+=d[i];
days+=date.day; //判断月份,天数相加
}
if(((date.year%4==0&&date.year%100!=0)||(date.year%400==0))&&(date.month>=3))
days+=1;
int num=0;
num=((days*60+date.minute)*60)+date.second;
cout<<"这是这一年中的第"<<num<<"秒.";
}
void calculate()
{
int days=0;
int s[13]= {0,31,29,31,30,31,30,31,31,30,31,30,31} ;//定义每月的天数
for(int i=1; i<date.month; i++)
{
days+=s[i];
days+=date.day; //判断月份,天数相加
}
if(((date.year%4==0&&date.year%100!=0)||(date.year%400==0))&&(date.month>=3))
days+=1;
cout<<"请输入您要增加的天数:"<<endl;
int d;
cin>>d;
int num; //定义num代表日期相加后的总天数
num=days+d;
cout<<"这是相加后的第"<<num<<"天"<<endl; //下面的程序功能有错误,这部分的功能为:在你输入的时间上加上d天,然后求其是哪年那月哪日;
for(int i=0; i<14; i++)
{
num=num-s[i];
date.month=i+1;
date.day=num;
if(num<0&&i<=13)
{
num=num+s[i-1];
}
if(i>=13)
{
date.year++;
date.month=1;
if(num<0&&i<=13)
{
num=num+s[i-1];
date.month=i+1;
}
}
}
cout<<"增加天数后为:"<<endl;
cout<<date.year<<" "<<date.month<<" "<<date.day;
}
这个程序编了两天,但到现在还没完成里面有一个功能一直做不出来,希望末位大神能给指导一下,