点击上方“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
当然最后一种写法仅供娱乐,面试的时候被问到,你要这样回答。那您还是回去等通知吧。
以上,便是今天的分享,希望大家喜欢,觉得内容不错的,欢迎点击「在看」支持,谢谢各位。
如需查看更多[Python Every Day]系列,请点击我的主页的【每日一题】菜单。
感谢您的阅读