测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A28660. 时间跨域

填空题 较易

题目描述

时间跨域

题目描述

假设现在是y年m月d日h时而k小时后是y'年m'月d'日h'时,对于给定的 y,m,d,h,k,小杨想请你帮他计算出对应的y',m',d',h' 是多少。

输入格式

输入包含五行,每行一个正整数,分别代表 y,m,d,h,k 。

输出格式

输出四个正整数,代表 y',m',d',h' 。

样例

2008
2
28
23
1
2008 2 29 0 1

数据范围

对于全部数据,保证有 2000≤y≤3000,1≤m≤12 ,1≤d≤31 ,0≤h≤23 ,1≤k≤24。数据保证为合法时间。

提示

闰年判断规则

  • 普通闰年:年份能被 4 整除,但不能被 100 整除。
  • 世纪闰年:年份能被 400 整除。

满足以上任意一条规则的年份就是闰年,否则是平年。

参考答案

y = int(input()) m = int(input()) d = int(input()) h = int(input()) k = int(input()) h += k if h >= 24: h -= 24 d += 1 days = 0 if m == 1 or m == 3 or m == 5 or m == 7 or m == 8 or m == 10 or m == 12: days= 31 elif m == 4 or m == 6 or m == 9 or m == 11: days= 30 elif m == 2: if (y % 4 == 0 and y % 100 != 0) or (y % 400 == 0): days= 29 else: days= 28 if d > days: d -= days m += 1 if m > 12: m = 1 y += 1 print(y,end=' ') print(m,end=' ') print(d,end=' ') print(h)
上一题 下一题