NextDate cid=1762#problem/C

日期格式:YYYYMMDD 或 YYYY-MM-DD,公元前:-YYYYMMDD 或 -YYYY-MM-DD
年份绝对值\(<=9999\)
公元前需加前缀 'BC '

import datetime
while 1:
    try:
        s=input()
        try:
            if len(s)==8:
                today=datetime.datetime.strptime(s,'%Y%m%d')
                nxday=today+datetime.timedelta(days=1)
                print(nxday.strftime('%Y-%m-%d'))
            elif len(s)==9:
                if s=='-00011231':
                    print('0001-01-01')
                elif s=='-00010229':
                    print('BC 0001-03-01')
                elif s=='-00010228':
                    print('BC 0001-02-29')
                else:
                    if s[0]=='-':
                        if s[5:9]=='1231':
                            y=int(s[1:5])-1;
                            y=str(y).zfill(4)
                            print("BC "+y+'-01-01')
                        else:
                            if s[1:5]=='0001':
                                today=datetime.datetime.strptime(s[1:9],'%Y%m%d')
                                nxday=today+datetime.timedelta(days=1)
                                ans='BC '+nxday.strftime('%Y-%m-%d')
                                print(ans)
                            else:
                                tmp=s[1:5]
                                y=int(s[1:5])-1
                                y=str(y).zfill(4)
                                ts=s[1:5]
                                s=s.replace(ts,y,1)
                                today=datetime.datetime.strptime(s[1:9],'%Y%m%d')
                                nxday=today+datetime.timedelta(days=1)
                                ans='BC '+tmp+'-'+nxday.strftime('%m-%d')
                                print(ans)
                    else:
                        print('Error !')
            elif len(s)==10:
                today=datetime.datetime.strptime(s,'%Y-%m-%d')
                nxday=today+datetime.timedelta(days=1)
                print(nxday.strftime('%Y-%m-%d'))
            elif len(s)==11:
                if s=='-0001-12-31':
                    print('0001-01-01')
                elif s=='-0001-02-29':
                    print('BC0001-03-01')
                elif s=='-0001-02-28':
                    print('BC0001-02-29')
                else:
                    if s[0]=='-':
                        if s[6:]=='12-31':
                            y=int(s[1:5])-1;
                            y=str(y).zfill(4)
                            print("BC "+y+'-01-01')
                        else:
                            if s[1:5]=='0001':
                                today=datetime.datetime.strptime(s[1:],'%Y-%m-%d')
                                nxday=today+datetime.timedelta(days=1)
                                ans='BC '+nxday.strftime('%Y-%m-%d')
                                print(ans)
                            else:
                                tmp=s[1:5]
                                y=int(s[1:5])-1
                                y=str(y).zfill(4)
                                ts=s[1:5]
                                s=s.replace(ts,y,1)
                                today=datetime.datetime.strptime(s[1:],'%Y-%m-%d')
                                nxday=today+datetime.timedelta(days=1)
                                ans='BC '+tmp+'-'+nxday.strftime('%m-%d')
                                print(ans)
                    else:
                        print('Error !')
            else:
                print('Error !')
        except:
            print('Error !')
    except:
        break
posted @ 2020-06-27 15:25  Zeronera  阅读(125)  评论(0)    收藏  举报