日期计算:输入某年某月某日,判断这一天是这一年的第几天?

编程:日期计算:输入某年某月某日,判断这一天是这一年的第几天?

1).程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第 几天, 特殊情况,闰年且输入月份大于3时需考虑多加一天。

2).如果输入的月份大于12时提示错误,重新输入

3).如果月份为小月,天数大于30时提示错误,重新输入

4).如果月份为大月,天数大于31时提示错误,重新输入

5).如果年份为平年,2月天数大于28时提示错误,重新输入

6).如果年份为闰年,2月天数大于29时提示错误,重新输入

def checkYear(): # 检查输入的年份是否为闰年

year = int(input(“年份:”))

if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0:

marks = True

else:

marks = False

return marks,year

def getMonth(): # 检查输入的月份是否合法

while True:

month = int(input(‘月份:’))

if month < 1 or month > 12:

print(‘月份输入错误,请重新输入’)

continue

else:

return month

def getDay(month,marks): # 检查输入的天数是否合法

while True:

day = int(input(‘天数:’))

if day < 1 or day > 31:

print(‘天数输入错误,请重新输入’)

continue

else:

if month in (4, 6, 9, 11):

if day > 30:

print(‘小月天数不能大于30,请重新输入’)

continue

if month == 2:

if marks and day > 29:

print(‘闰年2月天数不能大于29,请重新输入’)

continue

if marks == False and day > 28:

print(‘平2月天数不能大于28,请重新输入’)

continue

return day

def getSumDays(year,month,day,marks):

sumDays = 0

for i in range(1, month):

if i in (1, 3, 5, 7, 8, 10, 12):

sumDays += 31

elif i in (4, 6, 9, 11):

sumDays += 30

else:

if marks:

sumDays += 29

else:

sumDays += 28

sumDays += day

print(’%d年%d月%d日为%d年的第%d天’ % (year, month, day, year, sumDays))

m, year = checkYear()

month = getMonth()

day = getDay(month, m)

getSumDays(year, month, day, m)

#(分别写年月日函数进行判断)

# 2 写函数,接收两个数字参数,返回比较大的那个数字。

def my_sum(a,b):

if a-b>0:

return a

elif a-b==0:

return a

else:

return b

c=my_sum(1,2)

print©

猜你喜欢

转载自blog.csdn.net/weixin_43290492/article/details/90149830