编程:日期计算:输入某年某月某日,判断这一天是这一年的第几天?
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)
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(c)
在这里插入代码片