前天是哪天
给定公元1000年到公元3000年之间的某一天,请你给出该天的前天是哪一天。
输入格式:
输入在一个日期,格式如"yyyy-mm-dd",题目保证所有输入日期为合法日期。
输出格式:
对每一组输入,在一行中输出日期,格式如"yyyy-mm-dd"。
输入样例:
在这里给出一组输入。例如:
2020-3-15
输出样例:
在这里给出相应的输出。例如:
2020-3-13
代码如下:
y,m,d=map(int,input().split("-"))
def fun(y,m):
d1=31
if m in [4,6,9,11]:
d1=30
if m==2:
d1=28
if y%400==0 or (y%4==0 and y%100!=0):
d1=29
return d1
if d-2<=0:
m-=1
if m<=0:
y-=1
m=12
d=d-2+fun(y,m)
print(y,m,d)
else:
print(y,m,d-2)
在pta上的做法是:(以前做的,现在刚好复习重新写一遍)
year,month,day=map(int,input().split('-'))
month_day=31
month1=month-1
if month1 in [4,6,9,11]:
month_day=30
if month1==2:
month_day=28
if(year%4==0 and year%100!=0) or year%400==0 :
month_day+=1
day=day-2
if day<=0 :
month=month-1
if month<=0:
year=year-1
month=12
day=day+month_day
print(f"{year}-{month}-{day}")
结果:
拓展: 第几天?
给定一个日期,输出这个日期是该年的第几天。
输入格式:
输入数据有多组,每组占一行,数据格式为YYYY/MM/DD组成,具体参见输入样例,另外,可以向你确保所有的输入数据是合法的。
输出格式:
对于每组输入数据,输出一行,表示该日期是该年的第几天。
输入样例:
1985/1/20
2006/3/12
输出样例:
20
71
代码如下:
def fun(y,m):
d=31
if m in [4,6,9,11]:
d=30
if m==2:
d=28
if (y%4==0 and y%100!=0) or y%400==0:
d=29
return d
while True:
y,m,d=map(int,input().split("/"))
d1=0
if (m-1)==0:
print(d)
else:
for i in range(1,m):
d1=d1+fun(y,i)
d1=d1+d
print(d1)
结果: