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

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

示例:

  1. 输入日期

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

  1. 打印结果

2020 04 17是2020年的第108天


思路:

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

实现代码:

# 模块一:接受输入的日期,切片存储
date = input('请输入日期,格式YYYY MM DD:')
year = int(date[0:4])					# 切片后存储
month = int(date[5:7])
day = int(date[8:])


# 模块二:判断闰年
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:])

相关内容

发布了17 篇原创文章 · 获赞 9 · 访问量 890

猜你喜欢

转载自blog.csdn.net/Sherlooock/article/details/105572038