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()
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章