python - 输入某年某月某日,判断这一天是这一年的第几天?

两种简易的方法:

分析2-列表

1,平年闰年的月份是固定的,p_list为平年数据,r_list为闰年数据

p_list = [0,31,59,90,120,151,181,212,243,273,304,334]

r_list = [0,31,60,91,121,152,182,213,244,274,305,335]

2,先判断是否是闰年,如果为整百的,能够被400整除的是闰年,即年份%400==0 如果年份不是整百的能够被4整除就是闰年,否则就为平年。闰年二月份有29天, 平年2月份有28天

3,天数直接累加

p_list = [0,31,59,90,120,151,181,212,243,273,304,334]
r_list = [0,31,60,91,121,152,182,213,244,274,305,335]
str1 = input("请输入年月日:例 2018.11.06")
a, b, c = str1.split('.')
a = int(a)
b = int(b)
c = int(c)
def f(str1):
    if (a % 100 == 0 and a % 400 == 0) or (a % 100 != 0 and a % 4 == 0):
        return r_list[b-1]+c
    else:
        return p_list[b-1]+c
print(f(str1))

分析2-时间戳相减

把输入的时间转换为时间戳,再把当前年份第一天的是时间转换为时间戳,
两个相减得到所有秒数,把秒数转换为天数

# 字符类型的时间
tss1 = '2016-10-10'
# 转为时间数组
timeArray = time.strptime(tss1, "%Y-%m-%d")
timeStamp = int(time.mktime(timeArray))
print(timeStamp) # 输入时间的时间戳

btime=str(timeArray.tm_year)+"-01-01"
bArray = time.strptime(btime, "%Y-%m-%d")
bStamp = int(time.mktime(bArray))
print(bStamp) # 当前年一月一号的时间戳
print(int((timeStamp-bStamp)/(24*60*60))+1)

 

  • 8
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值