nextday函数程序实现

来源:互联网 发布:电脑上翻墙用什么软件 编辑:程序博客网 时间:2024/06/05 11:55

描述:输入指定日期,输出输入日期的下一天的具体日期;


程序实现:

#include <iostream>#include <string>using namespace std;int main(){    string ntime;    int tmp;    while(1)    {        cout<< "请输入日期,例如(0712-02-12)" << endl;loop:        cin>>ntime;        while(ntime.length()!=10)        {            cout<<"您的输入有误,请重新输入日期,例如(0712-02-12)"<<endl;            goto loop;        }        while(ntime[4]!='-'||ntime[7]!='-')        {            cout<<"您的输入格式有误,请重新输入日期,例如(0712-02-12)"<<endl;            goto loop;        }        while(ntime[0]=='0'&&ntime[1]=='0'&&ntime[2]=='0'&&ntime[3]=='0')        {            cout<<"您的年份输入有误,请重新输入日期,例如(0712-02-12)"<<endl;            goto loop;        }        while(ntime[5]>='2'||(ntime[5]=='1'&&ntime[6]>='3'))        {            cout<<"您的月份输入有误,请重新输入日期,例如(0712-02-12)"<<endl;            goto loop;        }        while(ntime[5]=='0'&&ntime[6]=='0')        {            cout<<"您的月份输入有误,请重新输入日期,例如(0712-02-12)"<<endl;            goto loop;        }        while((ntime[8]=='3'&&ntime[9]>='2'))        {            cout<<"您的天数输入有误,请重新输入日期,例如(0712-02-12)"<<endl;            goto loop;        }        while(ntime[8]=='0'&&ntime[9]=='0')        {            cout<<"您的天数输入有误,请重新输入日期,例如(0712-02-12)"<<endl;            goto loop;        }        while((((ntime[5]=='1'&&(ntime[6]=='0'||ntime[6]=='2'))||ntime[6]=='1'||ntime[6]=='3'||ntime[6]=='5'||ntime[6]=='7'||ntime[6]=='8')&&ntime[8]=='3'&&ntime[9]>='2')||(ntime[5]=='0'&&ntime[6]=='2'&&ntime[8]>='3'))        {            cout<<"您的天数输入有误,请重新输入日期,例如(0712-02-12)"<<endl;            goto loop;        }        while(((ntime[5]=='1'&&ntime[6]=='1')||(ntime[5]=='0'&&(ntime[6]=='4'||ntime[6]=='6'||ntime[6]=='9')))&&(ntime[8]=='3'&&ntime[9]>='1'))        {            cout<<"您的天数输入有误,请重新输入日期,例如(0712-02-12)"<<endl;            goto loop;        }        while(ntime[0]=='9'&&ntime[2]=='9'&&ntime[3]=='9'&&ntime[1]=='9'&&ntime[5]=='1'&&ntime[6]=='2'&&ntime[8]=='3'&&ntime[9]=='1')        {            cout<<"您的输入超出范围,请重新输入日期,例如(0712-02-12)"<<endl;            goto loop;        }        for(int i=0; i<ntime.length(); i++)        {            if((ntime[i]>='10'||ntime[i]<'0')&&ntime[i]!='-')            {                cout<<"您的年份输入有误1,请重新输入日期,例如(0712-02-12)"<<endl;                goto loop;            }        }        if(ntime[8]<'2'||(ntime[8]=='2'&&ntime[9]<='7'))        {            if(ntime[9]=='9')            {                ntime[9]='0';                ntime[8]=ntime[8]+1;            }            else            {                ntime[9]=ntime[9]+1;            }            cout<<"nextday为:"<<ntime<<endl;        }        else if(ntime[8]=='2'&&ntime[9]>='8')        {            if(ntime[5]=='0'&&ntime[6]=='2')            {                tmp=(ntime[0]-48)*1000+(ntime[1]-48)*100+(ntime[2]-48)*10+ntime[3]-48;                if(tmp%400==0||(tmp%4==0&&tmp%100!=0))                {                    if(ntime[8]=='2'&&ntime[9]=='9')                    {                        ntime[6]=ntime[6]+1;                        ntime[8]='0';                        ntime[9]='1';                    }                    else                    {                        ntime[9]=ntime[9]+1;                    }                    cout<<"nextday为:"<<ntime<<endl;                }                else                {                    if(ntime[9]=='9')                    {                        cout<<"您的输入有误,这一年的2月没有29天"<<endl;                        cout<< "请输入日期,例如(0712-02-12)" << endl;                        goto loop;                    }                    else                    {                        ntime[6]=ntime[6]+1;                        ntime[8]='0';                        ntime[9]='1';                        cout<<"nextday为:"<<ntime<<endl;                    }                }            }        }        else if((ntime[5]=='1'&&ntime[6]=='1')||(ntime[5]=='0'&&(ntime[6]=='4'||ntime[6]=='6'||ntime[6]=='9')))        {            ntime[9]=ntime[9]+1;            if(ntime[8]=='3'&&ntime[9]=='1')            {                ntime[6]=ntime[6]+1;                ntime[8]='0';                ntime[9]='1';            }            cout<<"nextday为:"<<ntime<<endl;        }        else if((ntime[5]=='1'&&(ntime[6]=='0'||ntime[6]=='2'))||ntime[6]=='1'||ntime[6]=='3'||ntime[6]=='5'||ntime[6]=='7'||ntime[6]=='8')        {            ntime[9]=ntime[9]+1;            if(ntime[9]>='2'&&ntime[8]=='3')            {                ntime[6]=ntime[6]+1;                ntime[8]='0';                ntime[9]='1';            }            if(ntime[5]=='1'&&ntime[6]>='3')            {                ntime[3]=ntime[3]+1;                ntime[5]='0';                ntime[6]='1';                ntime[8]='0';                ntime[9]='1';                if(ntime[3]=='10')                {                    ntime[3]='0';                    ntime[2]=ntime[2]+1;                }                if(ntime[2]=='10')                {                    ntime[2]='0';                    ntime[1]=ntime[1]+1;                }                if(ntime[1]=='10')                {                    ntime[1]='0';                    ntime[0]=ntime[0]+1;                }            }            cout<<"nextday为:"<<ntime<<endl;        }    }    return 0;}