Python计算当前日期或指定日期是一年中的第几天,可通过以下两种方法实现:
一、使用datetime
模块(推荐)
datetime
模块提供内置函数,可简化日期处理。以下是具体实现:
-
计算当前日期
from datetime import datetime current_date = datetime.now() start_of_year = datetime(current_date.year, 1, 1) delta = current_date - start_of_year day_of_year = delta.days + 1 print(f"今天是 {current_date.year} 年的第 {day_of_year} 天。")
-
计算指定日期
from datetime import datetime date_str = input("请输入日期(格式:YYYY-MM-DD):") current_date = datetime.strptime(date_str, "%Y-%m-%d") day_of_year = current_date.timetuple().tm_yday print(f"{date_str} 是 {current_date.year} 年的第 {day_of_year} 天。")
二、手动计算(不依赖模块)
通过循环累加月份天数,并判断闰年,实现自定义计算:
-
判断闰年
def is_leap_year(year): return year % 400 == 0 or (year % 4 == 0 and year % 100 != 0)
-
计算天数
def day_of_year(year, month, day): days_in_month = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] if is_leap_year(year): days_in_month = 29 total_days = sum(days_in_month[:month - 1]) + day return total_days year = int(input("请输入年份:")) month = int(input("请输入月份:")) day = int(input("请输入日期:")) print(f"{year}-{month:02d}-{day:02d} 是 {year} 年的第 {day_of_year(year, month, day)} 天。")
总结
-
推荐使用
datetime
模块 ,代码简洁且处理闰年自动,适合快速开发。 -
手动计算 适用于学习算法逻辑或特定需求,但需注意边界条件(如月份范围)。