[規格]1308 D-day python
8324 ワード
D-Day
質問する
キャンプ場に来たソン・ユジンはキャンプ場が退屈で、今日からキャンプが終わるまであと数日あることを知りたいと思っていた.しかし、キャンプ場は非常に長い(閏年を含むかもしれない)可能性があり、手で1つ1つ数えるのは難しいように見えます.
より正確な計算のために、有真は閏年の基準を見つけました.
入力
1行目は今日の日付、2行目はD-Dayの日付を示します.日付は年、月、日の順にスペースで区切られています.入力範囲は1年1月1日から9999年12月31日まで.今日の日付はいつもD-Dayの前にあります
しゅつりょく
今日からD-Dayまでx日が残っている場合は「D-」を出力し、スペースを残さずxを出力します.キャンプが千年以上続いた場合(今日はy年m月d、D-Dayがy+1000年m月dに等しいか遅い場合)、「gg」が出力されます.今日が2月29日の場合は許されません.
解決策
例えば、
26日間、0:00:00に出力します.
y1,m1,d1 = map(int,input().split())
y2,m2,d2 = map(int,input().split())
# def yoon(year) :
# return year//4-year//10+year//400
# def mon(year,month) :
# if month == 0 :
# return 0
# result = 0
# for i in range(1,month+1) :
# if i in [1,3,5,7,8,10,12] :
# result += 31
# elif i in [4,6,9,11] :
# result += 30
# elif i == 2 :
# if year//400 == 0:
# result += 29
# elif year//100 ==0 :
# result += 28
# elif year//4 ==0 :
# result += 29
# else :
# result += 28
# return result
# Day1 = (y1-1)*365+yoon(y1-1) + mon(y1,m1-1) + d1
# Day2 = (y2-1)*365+yoon(y2-1) + mon(y2,m2-1) + d2
# if y2-y1>1000 :
# print('gg')
# exit()
# elif y2-y1==1000 and m2>m1 :
# print('gg')
# exit()
# elif y2-y1==1000 and m1==m2 and d2>=d1 :
# print('gg')
# exit()
# else :
# print(f'D-{Day2-Day1}')
import datetime
print(str(datetime.date(y2,m2,d2)-datetime.date(y1,m1,d1)))
d_day = int(str(datetime.date(y2,m2,d2)-datetime.date(y1,m1,d1)).split()[0])
over = 0
for i in range(0,1000) :
if i%400==0 :
over +=366
elif i%100==0 :
over += 365
elif i%4==0 :
over += 366
else :
over += 365
if d_day >= over :
print('gg')
else :
print(f'D-{d_day}')
Reference
この問題について([規格]1308 D-day python), 我々は、より多くの情報をここで見つけました https://velog.io/@holawan/백준-1308D-day-pythonテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol