Python编程小练习——输入某年某月某日,判断这一天是这一年的第几天?

将平年和闰年的月份及天数放入对应的字典中,根据年份,确定从哪个字典中取值,根据月份(key),累加计算该月之前的天数(value),最后再加上当月的天数即可。

'''输入某年某月某日,判断这一天是这一年的第几天??'''    
run_dict={1:31,2:29,3:31,4:30,5:31,6:30,7:31,8:31,9:30,10:31,11:30,12:31}
ping_dict={1:31,2:28,3:31,4:30,5:31,6:30,7:31,8:31,9:30,10:31,11:30,12:31}
y=int(input('请输入年份:'))
m=int(input('请输入月份:'))
d=int(input('请输入日期:'))
sum=0
if 0<m<=12 and 0<d<=31:
    if (y%400==0) or ((y%4==0) and (y%100 !=0)):
        for i in range(1,m):
            sum=sum+run_dict[i]
        print('这一天是{}的第{}天'.format(y,sum+d))
    else:
        for i in range(1,m):
            sum=sum+ping_dict[i]
        print('这一天是{}的第{}天'.format(y,sum+d))
else:
    print('Data Error')

 

### 回答1: 可以使用Python编写一个程序来计算某年某月某日是这一年第几天。具体步骤如下: 1. 首先,需要输入年、月、日三个参数。 2. 然后,根据输入的年份判断是否为闰年。如果是闰年,二月份有29天,否则二月份有28天。 3. 接下来,根据输入的月份计算出该月之前的天数。 4. 最后,将该月之前的天数加上输入的日期,即可得到这一天是这一年第几天。 下面是Python代码实现: ```python year = int(input("请输入年份:")) month = int(input("请输入月份:")) day = int(input("请输入日期:")) # 判断是否为闰年 if (year % 4 == and year % 100 != ) or year % 400 == : leap = 1 else: leap = # 计算该月之前的天数 days = for i in range(1, month): if i == 2: days += 28 + leap elif i in [4, 6, 9, 11]: days += 30 else: days += 31 # 加上输入的日期,得到这一天是这一年第几天 days += day print("这一天是这一年的第%d天。" % days) ``` 希望能够帮助到你! ### 回答2: 题目描述: 输入某年某月某日判断一天是这一年第几天。 思路分析: 1. 判断一年是不是闰年 2. 将输入的年份减1,计算所有年份的天数 3. 根据月份计算天数 4. 最后加上日期 Python 代码实现: ```python def is_leap_year(year): """ 判断是否为闰年 """ return year % 4 == 0 and year % 100 != 0 or year % 400 == 0 def get_day_of_year(year, month, day): """ 计算这一天是这一年第几天 """ # 设置每个月的天数 days_of_month = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] # 如果是闰年,则将二月的天数改为29天 if is_leap_year(year): days_of_month[1] = 29 # 计算指定年份的总天数 total_days = 0 for y in range(year-1, 0, -1): total_days += 366 if is_leap_year(y) else 365 # 计算指定月份之前的总天数 for m in range(month-1): total_days += days_of_month[m] # 加上指定日期的天数 total_days += day return total_days # 测试代码 print(get_day_of_year(2021, 1, 1)) # 输出1 print(get_day_of_year(2021, 12, 31)) # 输出365 print(get_day_of_year(2020, 1, 1)) # 输出1 print(get_day_of_year(2020, 12, 31)) # 输出366,2020年是闰年 ``` 总结: 这道题目需要我们根据年、月、日来计算出这一天是该年的第几天,我们需要判断闰年,以及根据月份来计算天数,最后将年份的总天数、月份之前的总天数和日期的天数相加即可。Python语言处理日期时间的类库还是比较丰富的,比如datetime、time等,可以根据需求进行选择使用。 ### 回答3: 要判断某年某月某日是这一年第几天,我们需要先知道这一年是否为闰年,因为闰年的二月份天数为29天,而平年的二月份天数为28天。闰年的判断规则是:能被4整除但不能被100整除的年份是闰年,能被400整除的年份也是闰年。 在Python中,我们可以使用datetime库中的date类来实现这个功能。接下来,我们就来看看代码实现: ```python import datetime def days_of_year(year, month, day): is_leap = False if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0: # 判断是否为闰年 is_leap = True # 使用datetime模块中的date类来表示日期 date1 = datetime.date(year, month, day) # 创建一个表示今年1月1日的date对象 date2 = datetime.date(year, 1, 1) # 计算两个日期之间的天数差 delta = date1 - date2 # 如果是闰年且月份大于2月,则加1 if is_leap and month > 2: delta += datetime.timedelta(days=1) # 返回这个日期是这一年第几天 return delta.days + 1 print(days_of_year(2021, 6, 29)) # 输出180 ``` 以上代码中,我们首先判断一年是否为闰年,并使用datetime库的date类来创建表示输入日期和今年1月1日的date对象,然后计算两个日期之间的天数差,并根据是否为闰年和月份大于2月来判断是否需要加上1天。最后返回这个日期是这一年第几天。运行以上代码,输入2021年6月29日,输出180,表示这一天是2021年的第180天。 总之,使用datetime库的date类可以很方便地实现这个功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值