閏年についてびっくりしたこと

16日目です。

閏年(うるうどし)って4年に1度必ずくるものだと思ってたのですが、実は8年に1度の時があるってみなさんご存知でしたでしょうか?

 

太陽暦では、平年は365日であり、閏年閏日が挿入されて366日である。現在広く採用されているグレゴリオ暦では、閏年は400年間に97回ある。

   グレゴリオ暦では、次の規則に従って400年間に97回の閏年を設ける。

  1. 西暦年が4で割り切れる年は(原則として)閏年
  2. ただし、西暦年が100で割り切れる年は(原則として)平年。
  3. ただし、西暦年が400で割り切れる年は必ず閏年

https://ja.wikipedia.org/wiki/%E9%96%8F%E5%B9%B4

つまり、1600年と2000年は閏年(2月が29日まである年)ですが、1700年、1800年、1900年は閏年ではなく「平年(2月は28日まで)」の扱いになるそうです。「400年間に97回の閏年を設ける」ことで誤差が少なくなるんだそうです。そのため、来る2100年も閏年ではないので、2096年の次の閏年は2104年になります。

 

本日の練習問題で閏年を扱い、初めは「4で割り切れれば良いんだから簡単じゃん」とか思っていたのですが、以外と難しかったです。

 

ただ、Rubyには閏年かどうかをtrueかfalseで返してくれる「leapメソッド」があることも知りました。ちゃんと1900年はfalseで、2000年はtrueで返してくれます。

https://qiita.com/DrqYuto/items/c34613b71860b3482ead

便利なメソッドを多く知るのも可読性の高いコードを書くために必要なことですね。

ーーーーーーーーーーーーーーーーーーーーー

本日覚えたショートカット

エディタ上で「command + p」をすることで、ディレクトリの検索ができることを知りました。railsでは非常に多くのディレクトリを扱うので、とても便利だと思います。

 

本日は初めて教室に行き、Rubyの練習問題とrailsの環境構築および使い方を学習しました。railsは、Progateの時から全貌が大きくて何をやっているのかが見えなかったので、今度こそ身につけられるよう明日も頑張ります。

また、本日お話しした方が私より1ヶ月前(2期前)に開始した方だったのですが、もう個人アプリ作成に入られてました。作成期間は3~4日ほどと言ってましたが、一通りの機能は実装されていた感じだったので、1ヶ月後の目標がイメージできて良かったです。