我是靠谱客的博主 单薄火车,最近开发中收集的这篇文章主要介绍Python 每日一题(计算一个日期是该年的第多少天),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Python 每日一题:锻炼Python语法的运用,思维逻辑的锻炼,算法能力的培养。


题目:

   传入年月日参数,计算传入日期是该年的第多少天?

分析:

 1、判断年份、月份、天数是否符合要求。

 2、循环月份:1、3、5、7、8、10、12月31天;4、6、9、11月30天;2月闰年为29年,平年28天

 3、累加天数:输入月份如果大于1,则为:前几个月的天数 + 输入天数,否则就是输入的天数。


程序实现:

def is_leap(year):
    '''
        判断年份是否为闰年
    :param year: 判断的年份数
    :return: 是闰年返回True,否则返回None
    '''
    if year % 4 == 0 and year % 100 != 0 or year % 400 == 0:
        return True

def date_specification(year, month, day):
    '''
        判断传入的年月日是否符合规范
    :param year: 判断的年份值
    :param month: 判断的月份值
    :param day: 判断的天数值
    :return: 符合返回True,否则返回None
    '''
    if year > 0:
        if 1 <= month <= 12:
            if month == 2:
                if is_leap(year):
                    if 1 <= day <= 29:
                        return True
            else:
                if 1 <= day <= 28:
                    return True

def date_days_count(year, month, day):
    if date_specification(year, month, day):
        days_list = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30]
        total_days = 0
        for m in range(month-1):
            total_days += days_list[m]

        if month > 2:
            if is_leap(year):
                total_days += 1
        total_days += day
        print(f'{year}/{month}/{day} 是{year}年的第{total_days}天。')
    else:
        print('日期有误!')

date_days_count(2019, 13, 33)
date_days_count(1949, 3, 18)

实现结果:

日期有误!
1949/3/18 是1949年的第77天。

结语】以上整个程序的实现逻辑,还存在很多不全面的地方,欢迎各位大佬指点;如果觉得笔者不易,请给予点赞,给予我记录更多文章的动力!! 

最后

以上就是单薄火车为你收集整理的Python 每日一题(计算一个日期是该年的第多少天)的全部内容,希望文章能够帮你解决Python 每日一题(计算一个日期是该年的第多少天)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部