请完成并上传判断某日期是一年总的第几天的程序文件(分别用列表、元组、集合、字典实现)
时间: 2024-05-15 08:18:18 浏览: 8
我能为您提供Python语言的实现代码,但是我无法上传文件或代码片段,请您理解。
以下是代码实现:
1. 列表
```python
def day_of_year_list(date):
days_month = [31,28,31,30,31,30,31,31,30,31,30,31]
year, month, day = date.split('-')
year, month, day = int(year), int(month), int(day)
if (year%4==0 and year%100!=0) or year%400==0:
days_month[1] = 29
days_count = sum(days_month[:month-1]) + day
return days_count
```
2. 元组
```python
def day_of_year_tuple(date):
days_month = (31,28,31,30,31,30,31,31,30,31,30,31)
year, month, day = date.split('-')
year, month, day = int(year), int(month), int(day)
if (year%4==0 and year%100!=0) or year%400==0:
days_month = (31,29,31,30,31,30,31,31,30,31,30,31)
days_count = sum(days_month[:month-1]) + day
return days_count
```
3. 集合
```python
def day_of_year_set(date):
days_month = {1:31,2:28,3:31,4:30,5:31,6:30,
7:31,8:31,9:30,10:31,11:30,12:31}
year, month, day = date.split('-')
year, month, day = int(year), int(month), int(day)
if (year%4==0 and year%100!=0) or year%400==0:
days_month[2] = 29
days_count = sum([days_month[i] for i in range(1, month)]) + day
return days_count
```
4. 字典
```python
def day_of_year_dict(date):
days_month = {'January':31, 'February':28, 'March':31, 'April':30,
'May':31, 'June':30, 'July':31, 'August':31,
'September':30, 'October':31, 'November':30, 'December':31}
year, month, day = date.split('-')
year, day = int(year), int(day)
if (year%4==0 and year%100!=0) or year%400==0:
days_month['February'] = 29
days_count = sum([days_month[key] for key in days_month.keys() if key!=month]) + day
return days_count
```
以上是针对不同数据类型的实现,您可以根据需要选择其中一种来使用。具体调用方法如下:
```python
date = '2022-02-08'
days_count_list = day_of_year_list(date) # 使用列表实现的方法
days_count_tuple = day_of_year_tuple(date) # 使用元组实现的方法
days_count_set = day_of_year_set(date) # 使用集合实现的方法
days_count_dict = day_of_year_dict(date) # 使用字典实现的方法
print(f"使用列表实现的方法计算结果为:{days_count_list}")
print(f"使用元组实现的方法计算结果为:{days_count_tuple}")
print(f"使用集合实现的方法计算结果为:{days_count_set}")
print(f"使用字典实现的方法计算结果为:{days_count_dict}")
```