[R]その年が閏年か否かを調べる
閏年とはその年の数が以下の2つの条件を満たす年のこと。
- 4で割り切れる。
- 100で割り切れない。ただし400では割り切れる場合は除く。
例として、以下の年は閏年。
0、1996、2000、2012、2016、2020
以下の年は閏年ではない。
1、2、1900、1995、1999、2001、2015、2017
その年が閏年か否かを判定する関数leepyearを作成してみた。引数に年を与えるとその年が閏年であればTRUEを、閏年でなければFALSEを返す。
leepyear <- function(n) {
if ((n %% 4 == 0) && ((n %% 100 != 0) || (n %% 400 == 0))) {
return(TRUE)
} else {
return(FALSE)
}
}
この関数を使用した結果は以下のとおり。
> leepyear(0); leepyear(1); leepyear(2)
[1] TRUE
[1] FALSE
[1] FALSE
> leepyear(1900); leepyear(1995); leepyear(1996)
[1] FALSE
[1] FALSE
[1] TRUE
> leepyear(1999); leepyear(2000); leepyear(2001)
[1] FALSE
[1] TRUE
[1] FALSE
> leepyear(2015); leepyear(2016); leepyear(2017)
[1] FALSE
[1] TRUE
[1] FALSE
« [R]スプライン関数で簡単に平滑化を行う | トップページ | [Access VBA]数値の計算時(特に割り算)に小数点以下の数値がおかしくなる »
「R(日付と時刻)」カテゴリの記事
- [R]日付のタイムゾーンを得る(2025.01.16)
- [R]日付時刻型ベクトルのタイムゾーンを変更する(2024.12.23)
- [R]日付時刻型ベクトルの日付時刻を指定のタイムゾーンの日付時刻に変更する(2024.12.21)
- [R]ymd_hms関数で作成される日付時刻型ベクトルのタイムゾーンについて(2024.12.18)
- [R]何か月後か調べる(2024.12.02)
« [R]スプライン関数で簡単に平滑化を行う | トップページ | [Access VBA]数値の計算時(特に割り算)に小数点以下の数値がおかしくなる »

コメント