Python實現輸入某日期得到其後兩天日期

在某些編程習題中,經常我們會遇到輸入某個日期從而來輸出後面的日期。因爲每個月的天數規律不同,有時輸入比較多的代碼來完成,在這裏,使用了Python裏面的字典,可以方便些。
代碼如下:


# 判斷是否爲閏年
def isLeapYear(year):
    if year%400==0 :
        return 1;
    else:
        if year%4==0 and year%100!=0:
            return 1;
        else:
            return 0;


def main():
    flag=0    #判斷是否爲閏年的標誌
    #  存放每個月含有的天數
    dict = {1: 31, 2: 'null', 3: 31, 4: 30, 5: 31, 6: 30,
        7: 31, 8: 31, 9: 30,10: 31,11: 30,12: 31}

    # 將輸入日期進行判斷是否合法
    while 1:
        # 判斷年是否符合
        while 1:
            year = int(input("請輸入年份:"))
            if(year<1):
                print("你輸入的年份有問題,請重新輸入")
            else:
                flag = isLeapYear(year)
                if(flag==1):
                    dict[2]=29
                else:
                    dict[2]=28
                break
        # 判斷月是否符合
        while 1:
            month = int(input("請輸入月份:"))
            if(month>12 or month<1):
                print("你輸入的月份有問題,請重新輸入")
            else:
                break
        # 判斷日是否符合
        while 1:
            day = int(input("請輸入日數:"))
            if(day>31 or day<1):
                print("你輸入的日份有問題,請重新輸入")
            else:
                break
        # 判斷日與月是否錯誤
        if day > dict[month]:
            print("你輸入的日期有問題,請重新輸入")
        else:
            break

    # 12月這個需要跨年的特殊月份
    if month == 12:

        # 都超了
        if day == dict[month]:
            print(year, "-",  month, "-", day, "後兩天分別爲:")
            print(year+1, "-", month+1-12, "-", day + 1 - dict[month])
            print(year+1, "-", month+1-12, "-", day + 2 - dict[month])

        # 超了一天
        elif day == dict[month]-1:
            print(year, "-", month, "-", day, "後兩天分別爲:")
            print(year, "-", month, "-", day+1)
            print(year+1, "-", month+1-12, "-", day+2-dict[month])

        # 都沒超
        else:
            print(year, "-", month, "-", day, "後兩天分別爲:")
            print(year, "-", month, "-", day + 1)
            print(year, "-", month, "-", day + 2)

    # 除了12月的月份
    else:
        # 都超了
        if day == dict[month]:
            print(year, "-", month, "-", day, "後兩天分別爲:")
            print(year, "-", month + 1, "-", day + 1 - dict[month])
            print(year, "-", month + 1, "-", day + 2 - dict[month])

        # 超了一天
        elif day == dict[month]-1:
            print(year, "-", month, "-", day, "後兩天分別爲:")
            print(year, "-", month, "-", day + 1)
            print(year, "-", month + 1, "-", day + 2 - dict[month])

        # 都沒超
        else:
            print(year, "-", month, "-", day, "後兩天分別爲:")
            print(year, "-", month, "-", day + 1)
            print(year, "-", month, "-", day + 2)

    print("運行完成")

if __name__ == '__main__':
    main()
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章