如何使用函数计算一年中的剩余天数



我想使用python中的函数计算一年中剩下的天数。

我不想使用date.time库,因为它不是我应该使用的东西,相反,我应该创建一个函数来实现这一点。

我能以某种方式实现这些功能吗:

def is_leap_year(year):
return (year % 4 == 0) and (year % 100 != 0) or (year % 400 == 0)
def days_in_month(month, year):
if month in ['September', 'April', 'June', 'November']:
print(30)
elif month in ['January', 'March', 'May', 'July', 'August','October','December']:
print(31)        
elif month == 'February' and is_leap_year(year) == True:
print(29)
elif month == 'February' and is_leap_year(year) == False:
print(28)
else:
print(None)

创建我遇到问题的最后一个函数?

编辑:

def is_leap_year(year):
if year == (year % 4 == 0) and (year % 100 != 0) or (year % 400 == 0):
return 366
else:
return 365

def days_in_month(month, year):
if month in ['September', 'April', 'June', 'November']:
print(30)
elif month in ['January', 'March', 'May', 'July', 
'August','October','December']:
print(31)        
elif month == 'February' and is_leap_year(year) == True:
print(29)
elif month == 'February' and is_leap_year(year) == False:
print(28)
else:
print(None)
def days_left_in_year(month, day, year):
if is_leap_year == 366:
days_left = 366 - day
if is_leap_year == 365:
day_left = 366 - day

没有正当理由不使用内置模块。它们存在的全部原因是为了消除引入难以发现的错误的可能性,而日期/时间/闰年计算是程序员可能遇到的最容易出错的计算之一。

import datetime
def days_left_in_year(month, day, year):
day_of_year = datetime.datetime(year,month,day).timetuple().tm_yday
end_of_year = datetime.datetime(year,12,31).timetuple().tm_yday
return end_of_year - day_of_year

如果你真的不想使用标准模块(例如,datetime(,那么你可以这样做:

diysf = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334]
def isleap(yy):
return yy % 400 == 0 or (yy % 100 != 0 and yy % 4 == 0)
def rdays(yy, mm, dd):
diy = 366 if mm < 3 and isleap(yy) else 365
return diy - diysf[mm-1] - dd
print(rdays(YY,MM,DD))

输出:

276

相关内容

  • 没有找到相关文章

最新更新