返回顶部
扩大
缩小

Heaton

Python基础(七) 判断第几天demo

判断第几天1.0


'''
判断第几天1.0
'''
from datetime import datetime

def main():
    """
        主函数
    """
    input_date_str = input('请输入日期(yyyy/mm/dd):')
    input_date = datetime.strptime(input_date_str, '%Y/%m/%d')
    print(input_date)

    year = input_date.year
    month = input_date.month
    day = input_date.day

    # 计算之前月份天数的总和以及当前月份天数
    days_in_month_tup = (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31)
    # print(days_in_month_tup[: month - 1])
    days = sum(days_in_month_tup[: month - 1]) + day

    # 判断闰年
    if (year % 400 == 0) or ((year % 4 == 0) and (year % 100 != 0)):
        if month > 2:
            days += 1

    print('这是第{}天。'.format(days))

if __name__ == '__main__':
    main()

测试结果:

请输入日期(yyyy/mm/dd):2018/05/05
2018-05-05 00:00:00
这是第125天。

判断第几天2.0


'''
判断第几天2.0
'''
from datetime import datetime

def is_leap_year(year):
    """
        判断year是否为闰年
        是,返回True
        否,返回False
    """
    is_leap = False

    if (year % 400 == 0) or ((year % 4 == 0) and (year % 100 != 0)):
        is_leap = True

    return is_leap

def main():
    """
        主函数
    """
    input_date_str = input('请输入日期(yyyy/mm/dd):')
    input_date = datetime.strptime(input_date_str, '%Y/%m/%d')

    year = input_date.year
    month = input_date.month
    day = input_date.day

    # 计算之前月份天数的总和以及当前月份天数
    days_in_month_list = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
    if is_leap_year(year):
        days_in_month_list[1] = 29
    days = sum(days_in_month_list[: month - 1]) + day

    print('这是{}年的第{}天。'.format(year, days))

if __name__ == '__main__':
    main()

测试结果:

请输入日期(yyyy/mm/dd):2015/05/05
这是2015年的第125天。

判断第几天3.0



'''
判断第几天3.0
'''
from datetime import datetime

def is_leap_year(year):
    """
        判断year是否为闰年
        是,返回True
        否,返回False
    """
    is_leap = False

    if (year % 400 == 0) or ((year % 4 == 0) and (year % 100 != 0)):
        is_leap = True

    return is_leap

def main():
    """
        主函数
    """
    input_date_str = input('请输入日期(yyyy/mm/dd):')
    input_date = datetime.strptime(input_date_str, '%Y/%m/%d')

    year = input_date.year
    month = input_date.month
    day = input_date.day

    # 包含30天 月份集合
    _30_days_month_set = {4, 6, 9, 11}
    _31_days_month_set = {1, 3, 5, 7, 8, 10, 12}

    # 初始化值
    days = 0
    days += day

    for i in range(1, month):
        if i in _30_days_month_set:
            days += 30
        elif i in _31_days_month_set:
            days += 31
        else:
            days += 28

    if is_leap_year(year) and month > 2:
        days += 1

    print('这是{}年的第{}天。'.format(year, days))

if __name__ == '__main__':
    main()

测试结果:

请输入日期(yyyy/mm/dd):2015/05/05
这是2015年的第125天。

判断第几天4.0




'''
判断第几天4.0
'''
from datetime import datetime


def is_leap_year(year):
    """
        判断year是否为闰年
        是,返回True
        否,返回False
    """
    is_leap = False

    if (year % 400 == 0) or ((year % 4 == 0) and (year % 100 != 0)):
        is_leap = True

    return is_leap

def main():
    """
        主函数
    """
    input_date_str = input('请输入日期(yyyy/mm/dd):')
    input_date = datetime.strptime(input_date_str, '%Y/%m/%d')

    year = input_date.year
    month = input_date.month
    day = input_date.day

    # 月份-天数 字典
    month_day_dict = {1: 31,
                      2: 28,
                      3: 31,
                      4: 30,
                      5: 31,
                      6: 30,
                      7: 31,
                      8: 31,
                      9: 30,
                      10: 31,
                      11: 30,
                      12: 31}

    # 初始化值
    days = 0
    days += day

    for i in range(1, month):
        days += month_day_dict[i]

    if is_leap_year(year) and month > 2:
        days += 1

    print('这是{}年的第{}天。'.format(year, days))

if __name__ == '__main__':
    main()

测试结果:

请输入日期(yyyy/mm/dd):2015/05/05
这是2015年的第125天。

判断第几天5.0

'''
判断第几天5.0
'''
import time

def main():
    """
        主函数
    """
    input_date_str = input('请输入日期(yyyy/mm/dd):')
    input_date1 = time.strptime(input_date_str, '%Y/%m/%d')
    print(input_date1)

    print('这是{}年的第{}天。'.format(input_date1[0], input_date1[7]))

if __name__ == '__main__':
    main()

测试结果1:

请输入日期(yyyy/mm/dd):1999/03/01
time.struct_time(tm_year=1999, tm_mon=3, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=0, tm_yday=60, tm_isdst=-1)
这是1999年的第60天。
测试结果2:
请输入日期(yyyy/mm/dd):2000/03/01
time.struct_time(tm_year=2000, tm_mon=3, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=2, tm_yday=61, tm_isdst=-1)
这是2000年的第61天。

posted on 2019-02-21 13:38  咘雷扎克  阅读(193)  评论(0编辑  收藏  举报

导航