设计思路:1)首先定义一个日期接收参数

    2)然后将日期参数中的年,月,日分割提取出来(并转换为整数)

3)判断输入的日期是否正确

4)判断闰年还是平年,如果平年,那么定义的一个标识变量为0,如果是闰年,那么定义的标识变量为1,然后遍历月份求和

5)循环的值加上day,就是要计算的结果

date_str = input("请按’2020-05-05‘格式,输入年月日:")
# year, month, day = int(time_date[:4]), int(time_date[4:6]), int(time_date[6:])  # 将输入的数字拆分
year = int(date_str.split("-")[0])
month = int(date_str.split("-")[1])
# print(month)
day = int(date_str.split("-")[2])
# print(day)
month_set = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]  # 12个月的天数

if 0 < month < 12 and 0 < day < 32:  # 判断月日输入的正确与否
    print('你输入的日期格式正确')
else:
    print('你输入的日期格式不正确,请重新输入')

if (year % 400 == 0) or (year % 4 == 0) and (year % 100 != 0) and (month > 2):  # 判断是否为闰年且输入月份是否大于2
    d_sum = 1
else:
    d_sum = 0

i = 0
for i in range(month - 1):  # 遍历完整月份天数
    if i < (month - 1):
        d_sum += month_set[i]  # 将完整月份天数求和
        i += 1

d_sum += day  # 完整月份天数求和后,在加上day

print("%d年%d月%d日是这一年的第%d天" % (year, month, day, d_sum))

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐