项目4--玩日期

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;

}
这个程序编了两天,但到现在还没完成里面有一个功能一直做不出来,希望末位大神能给指导一下,


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HH-madp

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值