Python判断某一天是该年的第几天


1. 题目🔍

输入一个日期,打印出这一天是该年的第几天

1.1 输入样例

请输入日期,格式YYYY MM DD:2020 04 17

1.2 输出样例

2020 04 17是2020年的第108天


2. 题解✨

2.1 思路

  • 首先,此题的☸核心☸在于判断闰年(判断闰年方法:四年一闰;百年不闰,四百年再闰)
  • 其次,我们根据该年是否为闰年来创建两个分别适用于平年和闰年的每月天数列表
  • 最后,将该月前面月份的天数与该月的天数相加即可“判断一某天是该年的第几天”

2.2 代码

# 模块一:接受输入的日期,切片存储
date = input('请输入日期,格式YYYY MM DD:')
year = int(date[0:4])					# 切片后存储
month = int(date[5:7])
day = int(date[8:])
# 上方代码可简化为
# year, month, day = map(int, input().split())


# 模块二:判断闰年
def is_leap_year(year):
    if year % 4 == 0:
        if year % 100 == 0:
            if year % 400 == 0:
                return True				# 四百年再闰
            return False				# 百年不闰
        return True						# 四年一闰
    return False


# 模块三:闰年/平年每月天数列表
if is_leap_year(year) is True:
    month_list = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
else:
    month_list = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]


# 模块四:判断输入的月份,加上之前的天数
days = 0								# 某月之前月份包含的天数
for i in range(month - 1):
    days += month_list[i]
total = days + day						# 总天数


# 模块五:格式化输出
print('{}是{}年的第{}天'.format(date, year, total))



# >>> 理解切片 <<<
# 将索引视作指向字符之间 ,第一个字符的左侧标为0,最后一个字符的右侧标为n,其中n是字符串长度。
# +---+---+---+---+---+---+
# | P | y | t | h | o | n |
# +---+---+---+---+---+---+
# 0   1   2   3   4   5   6

# 注意:切片的开始总是被包括在结果中,而结束不被包括 <range()与之相同>。这使得s[:i] + s[i:]总是等于s
# word = 'Python'
# print(word[:2] + word[2:])

相关内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值