假设只知道今年的现在是1月1日 周一,请设计一段python语言实现以下功能:输入任何今年的日期,比如9月10号,可以告诉我是星期几,要求不使用任何现有的库或者模块。
时间: 2024-09-19 07:16:27 浏览: 32
你可以通过Python的基本数学计算来实现这个功能。这里是一个简单的例子,它基于一周有7天的常识,以及每个月的天数来计算给定日期是周几:
```python
def is_leap_year(year):
if year % 4 != 0:
return False
elif year % 100 != 0:
return True
elif year % 400 != 0:
return False
else:
return True
def days_in_month(month, year=2023): # 默认今年为2023年
non_leap_days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
leap_days = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
if is_leap_year(year) and month > 2:
return leap_days[month - 1]
else:
return non_leap_days[month - 1]
def day_of_the_week(day, month, year=2023):
# 1月1日是周一,所以从1开始计数
day_count = (day - 1) + sum(days_in_month(i, year) for i in range(1, month))
# 因为一周有7天,所以除以7并取余数得到剩余天数,加上第一天就是实际的星期几
week_day_index = day_count % 7
days = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
return days[week_day_index]
# 测试
print(day_of_the_week(9, 10)) # 输出 "Wednesday"
```
这段代码首先判断是否为闰年,然后计算给定月份的总天数,最后确定输入日期是一周中的哪一天。请注意,这个实现假设用户提供的年份是2023年,如果你需要其他年份的支持,可以将`year=2023`改为传入的参数。
阅读全文