うるう年を計算する ③

先にカレンダー作成をしましたが、来年はオリンピックの年でまた閏年でもあります。

閏年とは、
西暦が4で割り切れる年はうるう年
ただし、4で割り切れても100の倍数で、かつ400で割り切れない年はうるう年ではない
というものです。 

よって、2100年、2200年、2300年などは閏年ではありません。

さてこのルールをどうコーディングすればよいか考えてみましょう。

coding前の準備
・input()分は文字列なので、計算するときは整数に変換(int関数)必要。
・4の倍数かどうか、b= a % 4
・100の倍数かどうか、c= a % 100
・400の倍数かどうか、d= a % 400
この条件で組んでみます。

 

① 閏年計算 

まず準備通りのメソッドで作ります。 初心者丸出しですが、上手く動いているようです。
趣味ですから、うまく動けばいいのです。

————————————————-

while True:
  a=input(“What year to check as leap year? “)
  a=int(a)

  b=a % 4   #閏年の必要条件
  c=a % 100  #100割れて、
  d=a % 400 #かつ、400で割れなければ平年

  if b == 0 : #4の倍数なら
    if c == 0: #100の倍数なら
      if d != 0 : #400の倍数でないなら
        print(“Not Leap Year”)
      else:
        print(“Leap Year”)
    else:
      print(“Leap Year”)
  else:
    print(“Not Leap Year”)

  print() #行下げ用

———————————————-

これをrunすると

What year to check as leap year? 2020 #一回目は閏年
Leap Year

What year to check as leap year? 2200 #二回目は平年
Not Leap Year

このような結果が得られました。

 

 

次も簡単閏年を調べる方法です。

② 簡単なチェック方

西暦を入れると、その年の2月のカレンダーが表示されるので、
その月に29日が有ればうるう年です。 2020年はオリンピック
が有りますからうるう年ですね。

import calendar
year=input(“欲しいカレンダーの年、月入れて下さい。 “)
year=int(year)
print(calendar.month(year, 2))

February 2020
Mo Tu We Th Fr Sa Su
         1   2
  3   4   5   6  7   8  9
10  11 12 13 14 15 16
17  18 19 20 21 22 23
24  25  26  27  28  29

 

③ 或る期間に閏年が何回あるかのcode

import calendar

while True:
 start_year=input(“Enter the start year.”)
 end_year=input(“Enter the end year.”)

 start_year=int(start_year)
 end_year=int(end_year)

 for year in range(start_year, end_year):
  # うるう年の判定
  if(calendar.isleap(year) == True):
  print(year, “年はうるう年です。”)

2019年~2050年の間に閏年が何回あるか?

9回だそうです。

  

 

 

 

 

Python別館
Pythonファイルをexe化する

Pythonンプログラムを作っても、他人に渡す時はexeファイルにしないといけません。コマンドプロン …

Python別館
カレンダーを作る ②

復習を兼ねてカレンダーを作ってみましょう。試しに原始的な方法で来月(8月)のカレンダーを作ります。単 …

Python別館
EV計算機を作る 完成 ⑤

被写体の明るさ(EV)計算機を作る④の続きやっと完成しました。巷には沢山同種のアプリがありますが、今 …