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

方法一:

"""
3、输入某年某月某日,判断这一天是这一年的第几天
"""
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("公共%d天" % count)

方法二:

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

方法三:

"""
3、输入某年某月某日,判断这一天是这一年的第几天
"""
year = int(input("请输入年分:"))
month = int(input("请输入月份:"))
day = int(input("请输入日:"))

    
print("-" * 20)
day += (month-1) * 30   # 计算出month前的天数,按照每月30计算

if month < 9:   # 计算1、3、5、7月,每月的多出来的一天,也就是存在31天
    day += month//2
else: # 大于等于9月后,需要计算1、3、5、7、8、10、12月的多出来的一天,所有在取模的时候对month+1,之所以判断 month<9,由于7和8月连,对于后面的月份+1
    day += (month+1)//2

if month > 2:  # 计算闰年中,2月份的天数存在不足30天的日期
    if year%400 ==0 or year%4 == 0 and year%100 !=0 :
        day -= 1
    else:
        day -= 2
print("是一年的第%d天"%day)

  • 36
    点赞
  • 136
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值