判断今天是今年的第多少天?
思路:
1) 需要调用python自带模块调用当前时间
import time
date = time.localtime() # 获取当前日期时间
year, month, day = date[:3] # 获取年月日
2)定义一个各月份天数列表
day_month = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
3) 普通闰年:公历年份是4的倍数的,一般是闰年
4) 世纪闰年:公历年份是整百数的,必须是400的倍数才是闰年(如1900年不是世纪闰年,2000年是世纪闰年)
if year % 4 == 0 and year % 400 == 0: #如果年数是4和400的倍数
day_month[1] = 29 #就根据下标替换二月的天数为29
#sum是求和 下面式子就是把之前的整月的天数的和求出来
例如8月5日,那个 sum(day_month[:month-1])+day 就求出了1-7月的总天数然后加天数
month = int(month)
n = sum(day_month[:month-1]) + day #求和列表第一位到月份-1的总天数 -1是因为这个月还没有过完-1加现在的天数
print(n) #
完整代码如下
import time
date = time.localtime() # 获取当前日期时间
year, month, day = date[:3] # 获取年月日
day_month = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
#判断是否为闰年,如果是闰年把二月替换成29天
if year % 4 == 0 and year % 400 == 0:
day_month[1] = 29
if month==1: # 如果这个月是1月
print(day) # 直接输出天数
else:
month = int(month)
n = sum(day_month[:month-1]) + day
print(n)
# 方法二 使用time模块
import time
day = time.localtime().tm_yday
print(day)
def show_day(string):
return time.strptime(string,"%Y-%m-%d")
print(show_day("2019-9-1").tm_yday) # .tm_day 一年第多少天