見出し画像

Swiftでいこう -- うるう年を考えよう

まず、 "うるう年"ってどんな条件で判定できるかを考えよう。

国立天文台のサイトには

現在私たちが使っている暦は「グレゴリオ暦」といい、世界中の国で使われています。グレゴリオ暦法では、うるう年を次のように決めています。 (1)西暦年号が4で割り切れる年をうるう年とする。        (2)(1)の例外として、西暦年号が100で割り切れて400で割り切れない年は平年とする。

コードにしてみましょう。

func isLeapYear(_ year: Int) {
   
   
   let isLeapYear = ((year % 4 == 0) && (year % 100 != 0) || (year % 400 == 0))
   
   
   if isLeapYear{
       print("うるう年。")
   }else{
       print("違います。")
   }
   

}

西暦年号が4で割り切れる年なので、

(year % 4 == 0)

"4" で割って"0"になること。

例外があるということで"&&"で繋げます。

例外として、西暦年号が100で割り切れて400で割り切れない年はうるう年では"ない"ので、

うるう年の場合は100で割り切れない"year % 100 != 0"、または400で割りきれる"year % 400 == 0"という条件になります。

または(どちらか一方が成立)というのは"||"で表します。

 (year % 100 != 0) || (year % 400 == 0)

その判定を

let isLeapYear // true or false 

"year"の真偽値を"isLeapYear"に代入します。

あとはif文で

if isLeapYear{
      print("うるう年。")
  }else{
      print("違います。")
  }

真(true)であれば"うるう年。"違えば"違います。"と表示させます。

使ってみます。

isLeapYear(2016) 
isLeapYear(2018) 

コンソールに

うるう年。
違います。

と表示されます

この記事が気に入ったらサポートをしてみませんか?