已知1900/01/01是星期一。 (1) 如果把1900/01/01當作第一天,请设计一个Python程序,計算2023/04/19是第幾日。 (2) 擴充(1)的Python程序的功能,讓用戶輸入1900/01/01至3000/12/31之間的任何有效日期, 輸出該日期是1900/01/01之後的第幾日,以及當天是星期幾。
时间: 2023-07-07 14:34:21 浏览: 94
京东云一代爱kuai固件-m50固件
5星 · 资源好评率100%
好的,让我们来完成这个任务。首先,我们需要导入所需的库:
```python
import datetime
```
然后,我们定义一个函数来计算给定日期距离1900/01/01的天数:
```python
def days_since_1900_01_01(date):
start_date = datetime.date(1900, 1, 1)
delta = date - start_date
return delta.days
```
这个函数接受一个日期对象作为参数,并使用datetime库中的date对象计算该日期距离1900/01/01的天数。
接下来,我们可以使用这个函数来计算2023/04/19是第几天:
```python
date = datetime.date(2023, 4, 19)
days = days_since_1900_01_01(date)
print(days)
```
这段代码将输出2023/04/19距离1900/01/01的天数,即`85305`。
接下来,我们可以扩展这个程序的功能,让用户可以输入任何有效日期,并输出该日期距离1900/01/01的天数以及星期几。代码如下:
```python
def days_since_1900_01_01(date):
start_date = datetime.date(1900, 1, 1)
delta = date - start_date
return delta.days
def day_of_week(date):
weekday_dict = {
0: 'Monday',
1: 'Tuesday',
2: 'Wednesday',
3: 'Thursday',
4: 'Friday',
5: 'Saturday',
6: 'Sunday'
}
return weekday_dict[date.weekday()]
input_date_str = input("Enter a date (yyyy-mm-dd): ")
input_date = datetime.datetime.strptime(input_date_str, '%Y-%m-%d').date()
days = days_since_1900_01_01(input_date)
weekday = day_of_week(input_date)
print(f"{input_date_str} is the {days+1}th day since 1900/01/01, which is a {weekday}.")
```
这段代码将提示用户输入一个日期,然后使用datetime库将输入的日期字符串转换为date对象。然后,我们使用之前定义的`days_since_1900_01_01`函数计算该日期距离1900/01/01的天数,并使用`day_of_week`函数计算该日期是星期几。最后,我们输出结果,包括日期距离1900/01/01的天数和星期几。
这个程序可以处理任何有效日期,并输出相应的结果。
阅读全文