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)
コンソールに
うるう年。
違います。
と表示されます
この記事が気に入ったらサポートをしてみませんか?