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
12008 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)
上一题
下一题