闰年的判断条件:
- 能被4整除,并且不能被100整除
- 能被400整除的数
注意:以上两个条件满足一个即可
1.世纪闰年和普通闰年
year = int(input('请输入一个年份:'))
if(year % 4 == 0):
if(year % 100 == 0):
if(year % 400 == 0):
print('{0}是世纪闰年'.format(year))
else:
print('{0}不是闰年'.format(year))
else:
print('{0}是普通闰年'.format(year))
else:
print('{0}不是闰年'.format(year))
2.是否为闰年
year = int(input('请输入一个年份:'))
if(year % 4 == 0) and (year % 100 != 0) or (year % 400 == 0):
print('{0}是闰年'.format(year))
else:
print('{0}不是闰年'.format(year))
3.是否为闰年
year = int(input('请输入一个年份:'))
if year % 4 == 0 and year % 100 != 0:
print('{0}是普通闰年'.format(year))
elif year % 400 == 0:
print('{0}是世纪闰年'.format(year))
else:
print('{0}不是闰年'.format(year))
4. 判断输入的日期是今天的第几天
1. 列表加循环
year = int(input('请输入年份'))
month = int(input('请输入月份'))
day = int(input('请输入今天的日期'))
date = [31,29,31,30,31,30,31,31,30,31,30,31]
count = day # 这个月一共有多少天
if(year % 4 == 0) and (year % 100 != 0) or (year % 400 == 0):
print('{0}是闰年'.format(year))
date[1] = 29
else:
print('{0}不是闰年'.format(year))
date[1] = 28
for i in range(month - 1):
count += date[i]
x = date[month-1]
print('本月一共有{0}天'.format(x))
print('{0}年{1}月{2}日是今年的第{3}天'.format(year,month,day,count))
2. 元组
year = int(input("请输入年份:"))
month = int(input("请输入月份:"))
day = int(input("请输入当前日期:"))
sum_day = 0 # 天数
leap_year = 0 # 闰年(闰年将year设为1)
# 使用元组定义天数
# 如果输入的月份是1月份,则直接计算day即可
# 如果输入的月份是2月份,则要先计算出1月份的天数,即为31天
# 以此类推
# 1 2 3 4 5 6 7 8 9 10 11 12
# 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334
months = (0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334)
# 1. 据输入的月份,计算出前几个月的天数
if 0 < month <= 12:
sum_day = months[month - 1]
else:
print("输入的月份有误")
# 2. 判断是否为闰年:
if year % 400 == 0 or (year % 4 == 0 and year % 100 != 0):
leap_year = 1
# 3. 判断如果是闰年并且输入的月份大于2则在总的天数上加1
if leap_year == 1 and month > 2:
sum_day += day + 1
else:
sum_day += day
print(f"这一天是这一年的第 {sum_day} 天")
3. 列表
year=int(input("年:\n"))
month=int(input("月:\n"))
day=int(input("日:\n"))
months1=[0,31,60,91,121,152,182,213,244,274,305,335,366] #闰年
months2=[0,31,59,90,120,151,181,212,243,273,304,334,365] #平年
if ((year%4==0)and(year%100!=0)) or((year%100==0)and(year%400==0)):
Dth=months1[month-1]+day
else:
Dth=months2[month-1]+day
print("是该年的第%d天"%Dth)
4. time模块
import time
try:
a=input('请输入日期(格式:xxxx-xx-xx):')
b=time.strptime(a,'%Y-%m-%d') #时间字符串转化为元组
# print(b)
except ValueError:
print('请输入正确的日期格式!')
else:
b=time.strptime(a,'%Y-%m-%d') #时间元组格式化输出
# print(b)
d=time.strftime('%j',b) # %j 一年内的一天(001-366)
# print(dd)
y=time.strftime('%Y',b) # %Y 四位数的年份表示(000-9999)
print('输入的日期是%s年的第%s天'%(y,d))