龙空技术网

Python编程:计算当前日期是一年中的第几天

半个码农python 218

前言:

此时小伙伴们对“python中date函数”大概比较关切,同学们都想要知道一些“python中date函数”的相关知识。那么小编在网络上搜集了一些关于“python中date函数””的相关文章,希望你们能喜欢,大家一起来学习一下吧!

前言

正常人的思路通常是先判断闰年和平年,然后将每个月的天数相加再加上输入的天数。在平年中,有7个月每月都有31天,这几个月分别是1月、3月、5月、7月、8月、10月和12月。我们可以定义两个数组,一个用于存放闰年,另一个用于存放平年。

对于计算每个月的天数,我们可以使用一个简单的算法。首先,我们知道2月份的天数在闰年和平年是不同的,所以需要单独处理。对于其他月份,可以使用一个循环来累加每个月的天数

完整代码如下

def isleap(year):   if(year%4==0 and year%100 != 0) or year%400==0: # 闰年       # print(f"{year}年是闰年")       return 1   else:       # print(f"{year}年是平年")       return 0def calc_day(year,month,day):   leap = isleap(int(year))   if leap == 1:      total_day = sum(leap_list[:int(month)-1]) + int(day)      print(f"闰年{raw_data}是第{total_day}天")   else:      total_day = sum(month_list[:int(month)-1]) + int(day)      print(f"平年{raw_data}是第{total_day}天")if __name__=='__main__':     month_list = [31,28,31,30,31,30,31,31,30,31,30,31] # 平年每月天数   leap_list =  [31,29,31,30,31,30,31,31,30,31,30,31] # 闰年每月天数   raw_data = input("请输入年月日格式如2023-11-12:")   year ,month ,day = raw_data.split("-")   calc_day(year,month,day)   

在代码里面我们定义了计算闰年跟平年的函数 isleap(year)它输入年,然后返回闰年是1,平年是0,还定义了一个计算天数的函数calc_day(year,month,day),它接收3个参数,年,月,日,最后面还在if __name__=='__main__':中定义两个数据,用来存放每个月天数的,估计大部分人都是这样的写,但是这样写的话一点都不Python,下面教大家Python的正确写法

完整代码如下

import datetimeraw_data = input("请输入年月日格式如2023-11-12:")year ,month ,day = raw_data.split("-")date = datetime.date(int(year), int(month), int(day))total_day = date.timetuple().tm_ydayprint(f"{raw_data}是第{total_day}天")

以上代码使用python 自带的库,datetime.timetuple() 是 Python 中的一个方法,用于将 datetime 对象转换为一个包含年、月、日、时、分、秒的元组。这个方法返回的元组中的元素顺序为:年、月、日、时、分、秒、一周中的第几天(0-6,0 表示星期一)、一年中的第几天(1-366)以及是否为夏令时(-1、0 或 1)。

标签: #python中date函数 #python计算一年有多少秒