前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python编程经典案例【考题】判断日期是该年中的第几天

Python编程经典案例【考题】判断日期是该年中的第几天

作者头像
阿黎逸阳
发布2022-11-11 14:30:43
1.3K0
发布2022-11-11 14:30:43
举报
文章被收录于专栏:阿黎逸阳的代码

本文和你一起探索Python编程经典案例,让你沉浸式学习Python。

你可以拿着题目先思考,然后再对照本文解题方法进行比较。有不同的见解欢迎到公众号中跟我一起探讨。

本文目录

  1. 经典案例【考题】
  2. 经典案例解题方法 2.1 通过计算这一天和该年1月1日之间的时间差求天数 2.2 通过合计每个月的天数获取

一、经典案例【考题】

代码语言:javascript
复制
问题:输入日期,判断这一天是这一年的第几天?
代码语言:javascript
复制
输入:

20220809

代码语言:javascript
复制
输出:
代码语言:javascript
复制
221

二、经典案例解题方法

代码语言:javascript
复制
1   方法一:通过计算这一天和该年1月1日之间的时间差求天数

上述案例第一种解题思路为:

step1:截取输入时间的年份,拼凑出该年的1月1日作为参照日期。

step2:把输入日期和参照日期做差求出间隔天数,间隔天数加1即可求出这一天是这一年的第几天。

具体代码如下:

代码语言:javascript
复制
from datetime import date

raw_date = input('请按yyyymmdd方式输入年月日')
def y_days1(raw_date):
    date1 = date(int(raw_date[0:4]), 1, 1)
    date2 = date(int(raw_date[0:4]), int(raw_date[4:6]), int(raw_date[6:8]))
    return (date2 - date1).days + 1
y_days1(raw_date)

input('请按yyyymmdd方式输入年月日'):手动输入日期。

raw_date[0:4]:截取字符串第1位到第4位。

若手动输入日期为20220105,得到结果:

代码语言:javascript
复制
5‍

可以手动验证结果是对的。该方法的优点是逻辑简单,理解起来比较清晰。

代码语言:javascript
复制
2   方法二:通过合计每个月的天数获取

上述案例第二种解题思路为:

  • step1:调用calendar库应用for循环,获取输入日期在该年份中小于当月每个月份的天数,并加总。
  • step2:获取该日期当月的天数,并和之前的天数加总,求出这一天是这一年的第几天。

具体代码如下:

代码语言:javascript
复制
import calendar

raw_date = input('请按yyyymmdd方式输入年月日')
def y_days2(raw_date):
    all_days = 0
    for i in range(1, int(raw_date[4:6])):
        all_days += calendar.monthrange(int(raw_date[0:4]), i)[1]
    all_days += int(raw_date[6:8])
    print(all_days)
    return all_days
y_days2(raw_date)

若手动日期为20220108,得到结果:

代码语言:javascript
复制
8

可以手动验证结果是对的,感兴趣的朋友也可以把代码复制到Python中去,输入别的日期进行验证。

至此,Python中的编程经典案例【考题】判断日期是该年中的第几天已讲解完毕。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-08-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 阿黎逸阳的代码 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档