• ベストアンサー

ツェラーの公式について

ツェラーの公式を用いて曜日を算出するプログラムを PL/Iで作成したいのです。 どのようにコーディングすればいいのか教えてください。 よろしくお願いします。

  • m-49
  • お礼率66% (6/9)

質問者が選んだベストアンサー

  • ベストアンサー
  • arukamun
  • ベストアンサー率35% (842/2394)
回答No.1

PL/Iは解らないので、日本語で書きますね。 もし、月が3月未満なら、月に12を加え、年から1引く。 曜日は  年 +切り捨て(年÷4) -切り捨て(年÷100) +切り捨て(年÷400) +切り捨て((月×13+8)÷5) +日 を7で割った余りで、 0=日曜日 1=月曜日 2=火曜日 3=水曜日 4=木曜日 5=金曜日 6=土曜日 です。

m-49
質問者

お礼

さっそくお答えいただきありがとうございます。 ところで、切り捨て((月×13+8)÷5) の計算の意味を教えて頂けますか? なぜ月に13をかけて8を加えたものを5で割るのでしょうか? よろしくお願いします。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

http://member.nifty.ne.jp/NAKAGIRI/toy/mannen/mannen.html に説明があるのではないですか。 長文の説明で小生は十分読めていませんが x = y+[y÷4]-[y÷100]+[y÷400]+[2.6×m+0.6]+d  の説明のようです。 ほかにもWEB照会で「ツェラーの公式」を見てください。

m-49
質問者

お礼

ありがとうございました。

関連するQ&A

  • ツェラーの公式について

    最近ツェラーの公式を知ったのですが、その時に、 「ツェラーの公式は1582年10月15日(金)以降でのみ正しく判定出来ます。」 と書かれていました。 これは何故でしょうか? 1582年10月15日以前では、どのような不具合が出てくるのでしょうか? 分かる方教えてください。 よろしくお願いします。

  • F-BASIC ツェラーの公式 年月を入力してカレンダー表示

    F-BASICの下記の問題がどうしても分からなくて困っています。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ツェラーの公式を使い、年と月を入力すればその月のカレンダーを以下の例のように表示するプログラムを作成せよ。ただし、ツェラーの公式は次のように与えられる。西暦年、月、曜日を y%,m%,d% とすると (y%+y%\4-y%\100+y%\400+(13*m%+8)\5+d%)MOD 7 ただし、m%<=2 のときは上の式で y%=y%-1,m%=m%+12 とおく。 この結果、0なら日曜、1なら月曜・・・、6なら土曜となる。 例 2003年6月 1 日 2 月 3 火 4 水 5 木 ・ ・ ・ ・ 28 土 29 日 30 月 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 一週間悩んだのですが、分かりませんでした。 どうかよろしくお願いいたします。

  • c# ツェラーの公式を利用した計算方法

    利用言語はc# ソフトはvisual studio2022を利用しています。 年・月・日をそれぞれ入力し、ツェラーの公式を利用して曜日を出したいのですがやり方が分からず困っています。 分かる方がいらっしゃいましたらお力を貸していただけましたら幸いです。 曜日の判定をする部分は以下で実現したいです。 Console.WriteLine("{0}曜日", g[dayofweek]);

  • ポインタと整数との比較を行なっていますとは?

    題名通り、「ポインタと整数との比較を行なっています」とはどういう意味でしょうか?この解決策を教えてください。 ちなみに今、ツェラーの公式で年月日から曜日を得るという関数作成をしています。。

  • 日付と曜日から、1週間前(7日前)の日付を算出するプログラム

    ツェラーの公式を用いて、日付(年月日)から曜日を算出する方法があります。 例えばY年M月D日の曜日は、下式で求められます。 (Y + Y/4 - Y/100 + Y/400 + (13*M + 8)/5 + D) % 7 *但し、1月・2月は、前年の13月・14月とする。 *答えは0=日曜~6=土曜 これを応用して(別に応用しなくても良いんですが・・・)日付と曜日から、1週間前の同一曜日の日付を求めるプログラムを考えております。 例) 入力:2005年9月21日、水曜日 出力(解):2005年9月14日 この例は非常に簡単に求められますが、完全汎用型のプログラムを考えております。 しかし、なかなか良い知恵が出ません!! どなたかご教示頂けると助かります。 よろしくお願いします。

  • 曜日計算 公式 Floraの公式

    年月日を代入したら曜日を返す公式を自作しました。 もちろん、ツェラーの公式があるのは知っていたのですが。 誰か数学に詳しい方、私が自作した公式「Floraの公式」を、評価していただけたらなと思い、投稿させていただきました。 ブログを持っており、リンク先には証明および関連記事があります。 詳しい方からのアドバイスを待っております。 <証明> Floraの公式はY年M月D日の曜日を返す式である。 Floraの公式  Flr(Y,M,D) = R + [R/4] - [Y/100] + [Y/400] + [2.6*M + 2.7] + D - 1 (R = Y%28) 結果は以下のように定義する。  Flr(Y,M,D)%7 = 0: Sun., = 1: Mon., .= 2: Tue., = 3: Wed., = 4:Thu., = 5: Fri., = 6: Sat.   (ただし、M = 1,2はそれぞれM = 13,14としY = Y - 1とする。)   (RはYを28で割った余りである。R = Y%28) 式の証明は大きく以下のように分けられる(1,2月は、前年の13,14月とする。)。 A、同一世紀内での規則性を式にあらわす式を証明する。 B、世紀をまたがった規則性をあらわす式を証明する。 C、月毎の変化をあらわす式を証明する。 D、まとめ ただし、以下の点に注意。 ※0は日曜日、1は月曜日、2は火曜日、・・・である。 ※1年は3月から始まり、次の年の2月で終わることとし、1月を13月、2月を14月とする)、と考える。 ※20世紀は、1900~1999年のような間をさす。他の世紀も同様に。 以下の詳しい証明は、ブログに書いております。ブログ『心善淵』の関連記事:http://blog.goo.ne.jp/hihumizzz/c/3efe00080b47e4d6e59aac992ebb8891

  • 公式化って?

    f(n,m)=Σ{i=1→n}Σ{j=1→m}(i+j) のとき、f(2,3) を求めf(n,m)を公式化せよ。 f(2,3)=21になったのですがあってるでしょうか? あと、公式化とはどういうことでしょうか? すでに公式になっているように見えるのですが・・・

  • 数列の公式を教えて下さい

    次の様な時はどの様な公式を使えばよいのでしょうか? ・丸太を    一段目に5本    二段目に4本    三段目に3本    四段目に2本    五段目に1本   積んだ時の総数を算出する公式は??  

  • あなたが出会った美しい公式

    数学には様々な公式があり、中にはとても完成された美しいとも形容すべき公式がありますが、それらを教えてください。 私は月並みですが e^(πi)-1=0 これくらいしか知りません。

  • オイラーの公式の用い方

    オイラーの公式とド・モアブルの定理を利用して3倍角の公式を証明せよ。という問題のなのですが、私にはオイラーの公式の出番がないように思えます。。。 ド・モアブルの定理 (cosθ+i×sinθ)^n=cosnθ+i×sinnθ でn=3にして実部と虚部を比較するのではだめなのでしょうか?? 一応。。。 オイラーの公式 e^iθ=cosθ+i×sinθ

専門家に質問してみよう