ツェラーの公式を使う。ただ,Python のときと違いがあるので注意。
Zeller = function(y, m, d) {
w = c("Sat", "Sun", "Mon", "Tue", "Wed", "Thu", "Fri")
if (m == 1 || m == 2) {
m = m + 12
y = y - 1
}
C = y%/%100
Y = y%%100
D = (d + (26 * (m + 1))%/%10 + Y + Y%/%4 - 2 * C + C%/%4)%%7 + 1
return(w[D])
}
for (y in 2020:2030) {
for (m in 1:12) {
if (Zeller(y, m, 13) == "Fri") {
print(paste0(y, "年", m, "月"))
}
}
}
[1] "2020年3月"
[1] "2020年11月"
[1] "2021年8月"
[1] "2022年5月"
[1] "2023年1月"
[1] "2023年10月"
[1] "2024年9月"
[1] "2024年12月"
[1] "2025年6月"
[1] "2026年2月"
[1] "2026年3月"
[1] "2026年11月"
[1] "2027年8月"
[1] "2028年10月"
[1] "2029年4月"
[1] "2029年7月"
[1] "2030年9月"
[1] "2030年12月"
Python の場合と違うところ。大事!!
(26 * (m + 1))%/%10 を 26 * (m + 1) %/% 10 としてしまうと間違い
※コメント投稿者のブログIDはブログ作成者のみに通知されます