この方法では、インターネット上のが見つかりました:
1つの #アイデア:最初のそれは2月の日数に関係しているうるう年、あるかどうかを判断します。 2 #一緒に蓄積されたの最初の数ヶ月後の日数に加え、その上に、最終的な「日」によると、その後、月、。 3 #その後、4年間の飛躍、跳躍百年、400年と飛躍:うるう年の判断 4。データ= INPUT(「1日の特定の期間を入力してください」) 。5 #の印刷(データ) 6。 7。年= INT(データ[0 :4 ]) 。8月INT =(DATA [5 :. 7。]) 9日= INT(DATA [8 :]) 10 プリント(月) 。11 '' ' Yは、うるう年識別子である''' 12は、 13である 14 IF年% == 100 0: 15 IF年== 400%0: 16 Y = 真 。17 プリント(" うるう年1 " ) 18は、 他: 19 Y = 偽 20は、 印刷(' 未うるう年1 ' ) 21である のelif年4%==。0: 22である Y = 真 23が 印刷(' うるう年' ) 24 、他: 25 Y = Falseの 26は 印刷(' うるうない" ) 27 28 IF Y: 29 ms_day = [31,29,31,30,31,30,31,31,30,31,30,31 ] 30 プリント(' 1 ' ) 31は 他: 32 、ms_day = [31,28 31,30,31,30,31,31,30,31,30,31 ] 図33は、ある プリント(' 0 ' ) 34である日数= 0; 35 用の I における範囲(1,13 ): 36 プリント(3) #から1ずつが月を決定するために、判定された12 [37 IF I == 月: 38である ために J でレンジ(I-1): #は月私の後に決定され、追加することによって、リスト内の項目の前に、私-1ミリ秒 39 日+ = ms_day [J] 40 印刷(" %sの%sの年の最初の日である"%を(データ、(日+日) ))
この計算方法は、1月のために達成することはできません
別の解決策:
この方法の一つ:
それは、日付日時クラスモジュールを使用する必要があります最初のモジュールに導入され、
datetime.date()の使用:
用法:targetDay = datetime.date(年、月、日)
着信日時、時間の日付の種類を返します
1 targetDay = datetime.date(2020、1、1 ) 2 プリント(型(targetDay)) #结果:<クラスのdatetime.date '> 3 プリント(targetDay) #2019年1月1日
日付型のメソッドオブジェクト:
1. targetDay.year番号を返しますtargetDay年
2 targetDay.month番号を返しますtargetDay月
3 targetDay.day#targetDayが月の日数を返すべき
4 targetDay.weekday()#戻り、対応する日targetDay曜日
5 targetDay.isoformat()#戻り日付を表す形式「YYYY-MM-DD」の文字列
6 targetDay.ctime()#戻り列日付
5 targetDay.strftime(フォーマット)#戻りaを明示的な書式化文字列で制御された日付の文字列表現、。コードは0になりフォーマット値引用時間、分、秒
特に:オブジェクトのタイプとの間には、日付を減算することができる、戻り値は、これら二つの間の日数間隔であります
1 インポート日時 2 targetDay = datetime.date(2020、2、1 ) 3 nowDay = datetime.date.today() 4 count_day = nowDay - targetDay 5 プリント(count_day) #结果:22日、夜十二時00分00秒
結果:
1年は4桁を入力してください:2020は 2月を入力してください:2は、 3月の日付を入力します。1 4 2020年2月1日32日2020年、夜12時00分00秒日最初の年です。