# 题目描述 # 已知2024年1月1日是星期一, # 输入一个日期(格式YYYY-MM-DD,范围2024年内), # 判断该日期是星期几。
from _datetime import datetime
def find_week(data):
start_week=0
#根据题意,默认第一天为周一
know_week=datetime(2024,1,1)
#根据题意,调用datetime,来初始化时间,年月日
input_week=datetime.strptime(data,"%Y-%m-%d")
#输入一个日期(格式).strptime''''''''''''''''''''''''''''''''''''''''''''重要
day_=(input_week-know_week).days#相差多少天
week=(start_week+day_)%7#这是一个技巧
weeks=['星期一','星期二','星期三','星期四','星期五','星期六','星期天']
week_end=weeks[week]
print(week_end)
data=input()
find_week(data)
这段代码实现了根据输入的 2024 年内日期判断是星期几的功能,涉及到以下几个重要的 Python 知识点:
1. 模块导入与 datetime 类
python
from _datetime import datetime
通常情况下,我们会使用 from datetime import datetime 来导入 datetime 类。datetime 类是 Python 标准库中用于处理日期和时间的强大工具,它可以表示一个具体的日期和时间点,包含年、月、日、时、分、秒等信息。通过这个类,我们可以方便地进行日期和时间的计算、格式化和解析。
2. 字符串解析为日期对象
python
input_week = datetime.strptime(data, "%Y-%m-%d")
strptime 是 datetime 类的一个方法,用于将字符串按照指定的格式解析为 datetime 对象。%Y 表示四位数的年份,%m 表示两位数的月份,%d 表示两位数的日期。通过这种方式,我们可以将用户输入的字符串日期转换为 Python 可以处理的日期对象,以便进行后续的计算。
3. 日期对象的初始化
python
know_week = datetime(2024, 1, 1)
这行代码使用 datetime 类的构造函数创建了一个具体的日期对象,表示 2024 年 1 月 1 日。通过指定年、月、日作为参数,我们可以精确地定义一个日期。
4. 日期对象的减法运算
python
day_ = (input_week - know_week).days
datetime 对象之间可以进行减法运算,得到的结果是一个 timedelta 对象,它表示两个日期或时间之间的差值。timedelta 对象有一个 days 属性,通过访问这个属性,我们可以得到两个日期之间相差的天数。
5. 取模运算
python
week = (start_week + day_) % 7
取模运算符 % 用于计算两个数相除的余数。在这个代码中,我们利用取模运算将相差的天数转换为星期几的索引。因为一周有 7 天,所以通过对总天数取模 7,我们可以得到一个 0 到 6 之间的整数,分别对应星期一到星期天。
6. 列表索引与元素访问
python
weeks = ['星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期天']
week_end = weeks[week]
列表是 Python 中常用的数据结构,用于存储多个元素。通过索引,我们可以访问列表中的特定元素。在这个代码中,我们使用前面计算得到的星期索引 week 来访问 weeks 列表中的元素,从而得到对应的星期几的名称。
7. 函数定义与调用
python
def find_week(data):
# 函数体
...
data = input()
find_week(data)
函数是 Python 中组织代码的一种方式,通过定义函数,我们可以将一段具有特定功能的代码封装起来,提高代码的复用性和可读性。在这个代码中,我们定义了一个名为 find_week 的函数,它接受一个日期字符串作为参数,并在函数内部完成日期到星期几的转换。然后,我们通过 input() 函数获取用户输入的日期,并调用 find_week 函数进行处理。
8. 用户输入处理
python
data = input()
input() 是 Python 内置函数,用于从标准输入(通常是键盘)读取用户输入的内容,并将其作为字符串返回。在这个代码中,我们使用 input() 函数获取用户输入的日期字符串,然后将其传递给 find_week 函数进行处理。
# 题目:
# 输入一个字符串表示日期(格式YYYY-MM-DD),输出该日期是当年的第几天。
# 输入示例:
# 2025-04-01
# 输出示例:
# 91
# 提示:注意闰年判断。
# 根据日期来判断当天是当年的第几天
#判断是否是闰年:能被4整除,但不能被100整除或者能被400整除
from datetime import datetime#二话不说,直接调用第三方库
def find_day(t):
input_day=datetime.strptime(t,'%Y-%m-%d')
start_day=datetime(input_day.year,1,1)#记住,这个input_day.year,是提取input_day的年
main_day=(input_day-start_day).days+1 #记住这个是第几天,要+1,假如2024-1-2,那么是不是2024年的第二天。相减的话就是2-1=1,所以要加一天
print(main_day)
t=input()
find_day(t)
这段代码主要实现了根据输入的日期字符串(格式为 YYYY-MM-DD)计算该日期是当年的第几天的功能,下面为你总结其中涉及的知识点:
1. 模块导入
python
from datetime import datetime
datetime 是 Python 标准库中的一个模块,它提供了处理日期和时间的类和方法。这里通过 from...import 语句从 datetime 模块中导入了 datetime 类,该类可用于表示一个具体的日期和时间。
2. 函数定义
python
def find_day(t):
# 函数体
...
使用 def 关键字定义了一个名为 find_day 的函数,该函数接受一个参数 t,代表输入的日期字符串。函数内部封装了计算日期是当年第几天的逻辑。
3. 字符串解析为日期对象
python
input_day = datetime.strptime(t, '%Y-%m-%d')
strptime 是 datetime 类的一个类方法,用于将字符串按照指定的格式解析为 datetime 对象。%Y 表示四位数的年份,%m 表示两位数的月份,%d 表示两位数的日期。通过这种方式,可以将用户输入的字符串日期转换为 Python 可以处理的日期对象。
4. 日期对象的创建
python
start_day = datetime(input_day.year, 1, 1)
利用 datetime 类的构造函数创建了一个新的日期对象 start_day,表示输入日期所在年份的 1 月 1 日。input_day.year 用于提取 input_day 日期对象中的年份信息。
5. 日期对象的减法运算
python
main_day = (input_day - start_day).days + 1
datetime 对象之间可以进行减法运算,结果是一个 timedelta 对象,它表示两个日期或时间之间的差值。timedelta 对象有一个 days 属性,通过访问该属性可以得到两个日期之间相差的天数。由于要计算的是该日期是当年的第几天,所以需要在差值的基础上加 1。
6. 输入输出处理
python
t = input()
find_day(t)
input() 是 Python 的内置函数,用于从标准输入(通常是键盘)读取用户输入的内容,并将其作为字符串返回。然后将这个字符串作为参数传递给 find_day 函数进行处理。在 find_day 函数内部,使用 print(main_day) 将计算结果输出到控制台。
7. 闰年处理
虽然代码中没有显式地进行闰年判断,但由于使用了 datetime 模块进行日期计算,该模块会自动处理闰年的情况,确保日期计算的准确性。例如,在计算 2 月 29 日与 1 月 1 日之间的天数时,会正确地考虑到闰年的 2 月有 29 天。
626

被折叠的 条评论
为什么被折叠?



