[每日一题]27、输入日期,判断是这一年的第几天

点击上方“Python3X”,选择“置顶或者星标”

第一时间收到精彩推送!

Python Every Day, 第 27 天


Python中处理日期的模块有time、datetime、calendar。每个模块的用法都不同,掌握这三个模块就可以随心所欲的处理时间问题了。具体每个模块的用法后面再抽空详细讲吧,顺便我自己也熟悉一下。


今天的题目是:

输入年、月、日判断当前日期是今年的第几天?


题目的解法有很多,可以利用datetime模块两行代码就可以完成。甚至可以把每个月的天数加起来,当然这样就比较麻烦了。以下展示了四种写法,三个文艺写法,一个二笔写法。


文艺写法一:

import time

year = int(input("请输入年份:")) # 2019
month = int(input("请输入月份:")) # 8
day = int(input("请输入天:")) # 22

t = time.strptime(f'{year}-{month}-{day}', '%Y-%m-%d')
day = t.tm_yday
print(day) # 234

文艺写法二、

print("-" * 20)
year = int(input("请输入年份:")) # 2019
month = int(input("请输入月份:")) # 8
day = int(input("请输入天:")) # 22

import datetime
result = datetime.datetime(year, month, day)
# 格式化时间,%j 用来表示天数
print(result.strftime("%j")) # 234

文艺写法三:

import datetime
year = input("请输入年份: ")
month = input("请输入月份: ")
day = input("请输入天: ")
date1 = datetime.date(year=int(year),month=int(month),day=int(day))
date2 = datetime.date(year=int(year),month=1,day=1)
print((date1-date2).days+1) # 234

二B写法:

year = int(input("请输入年份:"))
month = int(input("请输入月份:"))
day = int(input("请输入天:"))
count = 0
if month == 1:
    count = day
elif month == 2:
    count = 31 + day
elif month == 3 and ((year % 4 == 0 and year % 100 != 0) or (year % 400 == 0)):
    if month == 3:
        count = 31 + 29 + day
    if month == 4:
        count = 31 + 29 + 31 + day
    if month == 5:
        count = 31 + 29 + 31 + 30 + day
    if month == 6:
        count = 31 + 29 + 31 + 30 + 31 + day
    if month == 7:
        count = 31 + 29 + 31 + 30 + 31 + 30 + day
    if month == 8:
        count = 31 + 29 + 31 + 30 + 31 + 30 + 31 + day
    if month == 9:
        count = 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + day
    if month == 10:
        count = 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + day
    if month == 11:
        count = 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + day
    if month == 12:
        count = 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30 + day
else:
    if month == 3:
        count = 31 + 28 + day
    if month == 4:
        count = 31 + 28 + 31 + day
    if month == 5:
        count = 31 + 28 + 31 + 30 + day
    if month == 6:
        count = 31 + 28 + 31 + 30 + 31 + day
    if month == 7:
        count = 31 + 28 + 31 + 30 + 31 + 30 + day
    if month == 8:
        count = 31 + 28 + 31 + 30 + 31 + 30 + 31 + day
    if month == 9:
        count = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + day
    if month == 10:
        count = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + day
    if month == 11:
        count = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + day
    if month == 12:
        count = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30 + day

print(count)  # 234

当然最后一种写法仅供娱乐,面试的时候被问到,你要这样回答。那您还是回去等通知吧。



以上,便是今天的分享,希望大家喜欢,觉得内容不错的,欢迎点击「在看」支持,谢谢各位。

640?wx_fmt=jpeg


如需查看更多[Python Every Day]系列,请点击我的主页的【每日一题】菜单。

640?


感谢您的阅读

640?wx_fmt=gif


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值