第二周----玩日期

来源:互联网 发布:宁波php招聘 编辑:程序博客网 时间:2024/04/30 17:43
/** Copyright (c) 2013, 烟台大学计算机学院* All rights reserved.* 作    者:申玉迪* 完成日期:2014 年 3 月 5 日* 版 本 号:v1.0* 问题描述:玩日期*/#include <iostream>using namespace std;struct Time{    int year;    int month;    int day;    int hour;    int minute;    int second;} time;void tian()//该日是本年的第几天{    int days=0,i,x;    for(i=0; i<time.month; ++i)    {        if(i==2)        {            if(time.year%400==0||(time.year%4==0&&time.year%100!=0))            {                x=29;            }            else            {                x=28;            }        }        if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)            x=31;        else if(i==4||i==6||i==9||i==11)            x=30;        else if(i==0)            x=time.day;        days=days+x;    }    cout<<"这是这一年的第"<<days<<"天."<<endl;}void miao()//这一秒是该日的第几秒{    int second;    second=time.hour*3600+time.minute*60+time.second;    cout<<"这是这一天的第"<<second<<"秒。"<<endl;}void fun()//求这一秒是本年的第几秒{    int days=0,i,x,second,S;//先算出该日是本年第几天和这一秒是本日的第几秒,然后就可以知道该秒是本年的第几秒了    for(i=0; i<time.month; ++i)    {        if(i==2)        {            if(time.year%400==0||(time.year%4==0&&time.year%100!=0))            {                x=29;            }            else            {                x=28;            }        }        if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)            x=31;        else if(i==4||i==6||i==9||i==11)            x=30;        else if(i==0)            x=time.day;        days=days+x;    }    second=time.hour*3600+time.minute*60+time.second;    S=(days-1)*24*60*60+second;    cout<<"这是这一年的第"<<S<<"秒"<<endl;}void wan()//输入d天后,是哪年哪月那日{    int i,j,d,x,days=0,month=1,day;    cout<<"请输入天数:";    cin>>d;    for(i=0; i<time.month; ++i)    {        if(i==2)        {            if(time.year%400==0||(time.year%4==0&&time.year%100!=0))            {                x=29;            }            else            {                x=28;            }        }        if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)            x=31;        else if(i==4||i==6||i==9||i==11)            x=30;        else if(i==0)            x=time.day;        days+=x;    }    day=days+d;           /*思想:看输入的日期是该年的第几天,然后加上d天后,在通过月份一点点减,月份                            逢12,年份加一*/    while(day>=31)    {        for(j=2; j<=13; j++)        {            if(j==3)            {                if(time.year%400==0||(time.year%4==0&&time.year%100!=0))                {                    x=29;                }                else                {                    x=28;                }            }            if(j==2||j==4||j==6||j==8||j==9||j==11||j==13)                x=31;            else if(j==5||j==7||j==10||j==12)                x=30;            day=day-x;            if(day<=0)            {                month=j-1;                day=day+x;                break;            }            if(j==13)            {                month=1;                time.year++;                break;            }        }    }    cout<<time.year<<"年"<<month<<"月"<<day<<"日"<<endl;}void bian()//输入s秒后,是何日何时{    int sec,s1;    cout<<"请输入秒数:";    cin>>s1;    sec=s1+time.second;//方法同上    while(sec>=60)    {        time.minute++;        sec-=60;        if(time.minute==60)        {            time.hour++;            time.minute=0;        }        if(time.hour==24)        {            time.day++;            time.hour=0;        }        if((time.month==1||time.month==3||time.month==5||time.month==7||time.month==8||time.month==10||time.month==12)&&time.day>31)        {            time.month++;            time.day=1;        }        if((time.month==4||time.month==6||time.month==9||time.month==11)&&time.day>30)        {            time.month++;            time.day=1;        }        if(time.month==2)        {            if(((time.year%400==0)||(time.year%4==0&&time.year%100!=0))&&time.day>29)            {                time.month++;                time.day=1;            }            if(time.day>28)            {                time.month++;                time.day=1;            }        }        if(time.month>12)        {            time.year++;            time.month=1;        }    }    cout<<time.year<<"年"<<time.month<<"月"<<time.day<<"日"<<time.hour<<"时"<<time.minute<<"分"<<sec<<"秒"<<endl;}int main(){    cout<<"请输入一个时间:";    while(1)    {        cin>>time.year>>time.month>>time.day>>time.hour>>time.minute>>time.second;        if(time.second<=60&&time.month<=12&&time.hour<24&&time.minute<60)        {            break;        }        cout<<"对不起,您输入的时间有误,请重新输入:";    }    tian();    miao();    fun();    wan();    bian();    return 0;}




这个程序写了很长时间,不知道这个算法对不对,试了好多次才改成现在的样子,若有错误,还望指出.


0 0
原创粉丝点击