裏 RjpWiki

Julia ときどき R, Python によるコンピュータプログラム,コンピュータ・サイエンス,統計学

次の 13 日の金曜日は?

2020年03月07日 | ブログラミング

ツェラーの公式を使う。ただ,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 としてしまうと間違い

 

コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« アベの餌食にならなくて本当... | トップ | 言語により演算子の優先順位... »
最新の画像もっと見る

コメントを投稿

ブログラミング」カテゴリの最新記事