假设八月第一天为星期二,请设计函数,实现输入任意八月日期(1-31),判断是星期几。注意要验证非入月的日期输入,日期输入格式定为08 15(前两个数字为月份,后两个为日期)
时间: 2024-12-10 14:38:36 浏览: 9
要实现这样一个功能,你可以使用Python编写一个函数,结合闰年规则和一个月内的天数来计算。首先需要处理的是输入格式的验证,然后确定给定日期在相应月份的位置,最后利用模运算确定星期几。这里是一个示例函数:
```python
import datetime
def is_valid_date(month_str, day_str):
try:
month, day = map(int, (month_str, day_str))
if not (1 <= month <= 12 and 1 <= day <= 31):
return False
if month == 2 and (day < 1 or day > 29): # 非闰年的2月
return False
elif (month == 4 or month == 6 or month == 9 or month == 11) and day > 30: # 其他非闰年的30天月份
return False
else:
return True
except ValueError:
return False
def get_weekday(date_str):
month, day = date_str.split(' ')
if is_valid_date(month, day):
target_date = f"2022{month}/{day}" if len(str(year)) == 2 else f"{year}{month}/{day}"
target_date_obj = datetime.datetime.strptime(target_date, "%Y%m%d")
weekdays = ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"]
return weekdays[target_date_obj.weekday()]
else:
return "输入的日期不在八月范围内"
# 示例
date_input = input("请输入八月日期(格式:08 15):")
print(get_weekday(date_input))
#
阅读全文