🕓

isLeapYearDeshouka??:閏年をSwiftで書いてみた

2022/02/25に公開
2

閏年の条件( 国立天文台のサイトを参照)💡

  • 西暦で示した年が4で割り切れる年は閏年⭕️
  • 上記の中でも西暦年号が100で割り切れて400で割り切れない年は閏わない❌

やりたいこと👨‍💻

  • 閏年なら「Say, YES!!」
  • 閏わないなら「Say, NO!!」

Code✏️

let aYear: Int = xxxx

func isLeapYearDeshouka() {
  if aYear % 4 == 0 {
      if aYear % 100 == 0 && aYear % 400 != 0 {
      print("Say, Yes!!")
      } else {
      print("Say, NO!!")
      }
  } else {
    print("Say, No!!")
  }
}

Comment💬

とりあえずお勉強メモとして残しておきましたが、何か他にもこんな書き方できるよ、などのアドバイスがございましたら何なりとよろしくお願いいたします😊🍀

Discussion

Asada SantoheiAsada Santohei

上記のものだと、ほぼ毎年が閏いません。
以下はどうでしょうか。

func isLeapYear(_ year: Int) -> Bool {
    if year % 400 == 0 { return true }
    return year % 4 == 0 && year % 100 != 0
}

(1900...2100).forEach { y in
    print("\(y) : \(isLeapYear(y) ? "閏年" : "")")
}

(すいません、前に投稿したものに間違いがありましたので再投稿です)

ZackZack

ご指摘いただきありがとうございます🍀
条件も整理できていなければ、「Yes / No」が逆になっていたりと破茶滅茶になってました😅

とてもスッキリしていて、見易いコードをありがとうございます😭✨
参考にさせていただき、修正してみます!!