#题目:输入某年某月某日,判断这一天是这一年的第几天?
Posted insight-cm
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了#题目:输入某年某月某日,判断这一天是这一年的第几天?相关的知识,希望对你有一定的参考价值。
在网上查到的方法:
1 # 思路:先判断是否为闰年,这关系到 2 月份的天数。 2 # 之后再根据月份值把前几个月的天数累积加起来,最后再加上个“日”,就可以了。 3 #闰年判断:四年一闰,百年不闰,400年再闰 4 data = input(‘请输入某年某月某日:‘) 5 #print(data) 6 7 year = int(data[0:4]) 8 month = int(data[5:7]) 9 day = int(data[8:]) 10 print(month) 11 ‘‘‘y为闰年标识符‘‘‘ 12 13 14 if year%100 == 0: 15 if year%400 == 0: 16 y = True 17 print("是闰年1") 18 else: 19 y = False 20 print(‘不是闰年1‘) 21 elif year%4 == 0: 22 y = True 23 print(‘是闰年‘) 24 else: 25 y = False 26 print(‘不是闰年‘) 27 28 if y: 29 ms_day=[31,29,31,30,31,30,31,31,30,31,30,31] 30 print(‘1‘) 31 else: 32 ms_day=[31,28,31,30,31,30,31,31,30,31,30,31] 33 print(‘0‘) 34 days=0; 35 for i in range(1,13): 36 print(3)#从1到12逐一判断,以确定月份 37 if i==month: 38 for j in range(i-1): #确定月份i之后,则将ms列表中的前i-1项相加 39 days += ms_day[j] 40 print(‘%s是该年份的第%s天‘ % (data,(days+day)))
这种方法对于一月份无法实现计算
另解:
方法一:
这里需要用到datetime模块中的date类, 先导入该模块
datetime.date()的用法:
用法:targetDay = datetime.date(year, month, day)
传入年月日,返回一个date类型的时间
1 targetDay = datetime.date(2020, 1, 1) 2 print(type(targetDay)) # 结果:<class ‘datetime.date‘> 3 print(targetDay) # 2019-01-01
date类型的对象的方法:
1. targetDay.year # 返回targetDay年份
2. targetDay.month # 返回targetDay月份
3. targetDay.day # 返回targetDay对应该月份的天数
4. targetDay.weekday() # 返回targetDay那天对应是星期几
5. targetDay.isoformat() # 返回格式’YYYY-MM-DD’表示日期的字符串
6. targetDay.ctime() # 返回表示日期的字符串
5. targetDay.strftime(format) # 返回一个表示日期的字符串,由显式的格式字符串控制。引用小时、分钟和秒的格式代码的值将为0
特别:date类型对象之间可以相减,返回值是俩者之间的间隔的天数
1 import datetime 2 targetDay = datetime.date(2020, 2, 1) 3 nowDay = datetime.date.today() 4 count_day = nowDay - targetDay 5 print(count_day) # 结果:22 days, 0:00:00
运行结果:
1 请输入4位数的年份:2020 2 请输入月份:2 3 请输入当月哪一天:1 4 2020-02-01是2020年的第32 days, 0:00:00天.
以上是关于#题目:输入某年某月某日,判断这一天是这一年的第几天?的主要内容,如果未能解决你的问题,请参考以下文章