• ベストアンサー

万年暦を導き出すプログラミング

来訪者が少しでも増えればと、試しに占いのページを作ってみたいと思うのですが、そこで一番困ったのは、四柱推命等で使う万年暦の求め方です。膨大な万年暦を打ち込むのは大変だし、ミスも起こりうることなので、何かいいプログラミング方法、もしくはサンプルソースなどはどこかにないでしょうか。 あるいは公開された万年暦の既存の物があれば、可能なら使わせていただければ幸いです。 言語は問いません。

  • rapi1
  • お礼率96% (27/28)

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

  • ベストアンサー
  • ymmasayan
  • ベストアンサー率30% (2593/8599)
回答No.1

Windowsの時刻をダブルクリックするととカレンダーが出ます。 これが万年時計になっているようです。 ただし、システム日付ですから,いじることは余りお勧めしませんが。 つぎの方法は計算で求めるものです。1900年1月1日を1日目として 通算日を計算するのです。 1年を365.2422日として(西暦年ー1900)をかけて切捨てすれば その年の先頭(実は前の日)の通算日が出ます。 後は月日からその年の通算日を出して足します。 この最後の通算日を7で割ると曜日が求まります。 確か、1900年1月1日は日曜日だったような気が。

rapi1
質問者

お礼

ありがとうございます。 カレンダーもさることながら、十干と十二支を出したいのです。 いわゆる、 甲・乙・丙・丁・戊・己・・・ 子・丑・寅・卯・辰・巳・午・・・ といったものです。 これを効率よく求める方法はないものかと。

その他の回答 (2)

回答No.3

有名なのは「ツェラーの公式」です。 昔BASICとCOBOLとMIFESエディタのマクロで作りました。 計算式は、検索していただけば見つかると思います。 とても便利な計算式なのですが、問題があって、2000年 2月28日(この年はうるう年なので29日まで)までは 正確に計算できますが、3月1日以降は途中で負の値が 出て計算不能になります。1900年代が計算基準だからです。 ですから、どこかの年の1月1日の曜日を割り出して おいて、そこから数えるようにプログラムすれば問題 なくできます。 余談ですが、いわゆるY2K問題も、西暦を下2桁で表した のとは別に、この計算式を搭載したプログラムでも 起こることが分かりましたよ。マクロの計算結果が おかしくなったことに気づきました。

rapi1
質問者

お礼

「ツェラーの公式」ですね。調べてみて参考にさせていただきます。解説ありがとうございました。

  • ymmasayan
  • ベストアンサー率30% (2593/8599)
回答No.2

No.1のymmasayanです。 >カレンダーもさることながら、十干と十二支を出したいのです。 十干と十二支は年と日の両方ありますね。いずれにしても通算年または通算日を10または12で割れば簡単に(?)求まるでしょう。

rapi1
質問者

お礼

再度回答ありがとうございました。

関連するQ&A

  • 最初に学ぶべきプログラミング言語は?

    プログラミングをしたいと思います。 目的がはっきりしていないのですが、ソースの公開されているプログラムを自分向きに修正、改造したりしたいです。(要望を出して対応してもらうのは申し訳ないですし、自分で多少はいじれるようになりたいです。せっかくソースを公開されているのですから。) 疑問に思ったのは、最初に学ぶべき言語についてです、各言語の特色、主要な言語の情報を教えていただけないでしょうか。 プログラミングを始めるに際して、入り口に立つための準備に関することを教えていただけないでしょうか。 よろしくお願いします。

  • C言語プログラミング試験でわからない問題

     6月にあるC言語プログラミング処理検定2級を受験するのですが  サンプルでネット上で公開されている問題で行き詰っている問題  があり教えてほしいです。  http://www.sikaku.gr.jp/js/sample/cp2-3.pdf  問4にある問題を  VisualC++を使用して、デバックしながら、中身の  変数を確認したいのですが、このままだとエラー  になってしまいコンパイルできません。  これを、C++で確認するために、ソースコードを  どう変えたらいいか教えてほしいです。  ちなみにpdfの中身は  struct hizuke{ int year; /*年*/ int month;/*月*/ int day; /*日*/ }date_1,*date_2=&date_1; です。C言語でコンパイルするためにソースどう書き換えたら いいのか教えてください。  

  • 四柱推命について教えてください

    いまから10年以上前、大失恋の直後に占いのはしごをしたことがあります。 そのときに、四柱推命でも占ってもらったのですが、わたしの「結婚できるでしょうか?」という質問に対し、ぱちぱちぱちとコンピューターに誕生日を入力して、「いや、あなたは一生結婚できませんね」と言い切られました。 もともと、占いは「お楽しみ」として、良いことしか信じない質ですが、さすがにこのときはショックなのとその言い様に腹がたったのとで、いまでも強く印象に残っています。 ちなみにくやしいことに(笑)今日現在独身で、いまだ彼が間違っていたことを証明できずに来てしまいましたが、四柱推命、という占いはこういう「あなたは~できません」と断じるような占いなのでしょうか?その後の対策を教えない占い、というのも、どうかな、と思ったりもしますが。 四柱推命に詳しいかたがいらっしゃたら教えていただければ幸いです。 (ああ、早く「ふん、はずれたよ」と報告しに行きたいものです!)

  • 四柱推命で旧暦で占う?

    四柱推命のことで聞きたいのですが、 四柱推命で占いをするときは旧暦で占っているのでしょうか? それとも西暦で占いをみているのでしょうか? 相性を見たいのですが旧暦で見たほうが良いのであれば教えてもらえますか? 1973年1月9日 1973年7月2日 1976年11月2日です。 1973年の1月の場合は早生まれになるので旧暦の方がいいのでしょうか? すみませんよろしくおねがいします。

  • BREWのプログラミング

    以前(といいましてもかれこれ7~8年前)に、C言語を使ってプログラミングの仕事をしておりました。 今回、仕事上でBREWを扱うことになりました。 既存のプログラムを変更する作業で、内容も簡単な物らしいのですが、何せ開発から何年も離れていたため心配です。 C言語は少しは思い出せるのですが、BREWはまた全く違った感じなのでしょうか。 やはりブランクがあると厳しいですか?

  • 四柱推命の占いについて教えてください。

    四柱推命の占いについて教えてください。 変通星を年柱月柱で決めますが,この年柱・月柱の決め方が以前読んだ本と今の占いと 用いるものが違いますが,どちらが正しいのでしょうか? 以前読んだ本では,{元命}という語句も使っていました(記憶ですいません)

  • 九星気学と四柱推命の違い

    2013年の運勢を見ると、 九星気学と四柱推命でぜんぜん違います。 2012年九星気学の運勢は、すごく当たっていたし、 四柱推命で見る、自分の性格はすごく当たっています。 星占い(西洋)とこれら(東洋)が結果が違うのは、まあ仕方ないと思えるんですが、 九星気学と四柱推命は、元は同じなのか、まったく違うものなのか、 正確性はどちらが上なのか、特徴が違うのか、 教えて下さい、よろしくお願いします。

  • C言語でBASE64のエンコードのプログラミング

    現在、C言語(OS:Linux)でSMTPのメールを送るプログラムを作っています。 しかし、送信のところまでは完成したのですが、日本語では送れません。 そこでContent-transfer-encodingをBase64にしようと考えています。 インターネットや本でいろいろ調べましたが、VCでのソースしか載っていなくて、 それを改良しても出来ない状況が続いています。 BASE64については理解していますが、プログラムが組めません。 どなたか、C言語(VCではないもの)でBASE64のエンコードのプログラミングのソースを 公開しているサイトを知りませんか。 また、ソースを公開してくれる人がいましたら、教えてください。 よろしくお願いします。

  • 占いサイトをつくりたい

    はじめまして。 ただいま独学でプログラミングを勉強しており、 まず手始めに占いサイトを自作で作ってみたいと思っています。 できれば星座占いや四柱推命を使ったちょっと本格的な占いサイトをつくりたいと考えています。 そこで質問なのですが、占いサイトを作るに当たってなにか良いCGIなどはありますか? ちなみに、現在まで勉強してきたのはJavascript、PHPとmysqlなどで、 簡単なスクリプトくらいなら組めるレベルです。 よろしくお願いします。

  • 占いサイトの製作でいいCGIはありませんか?

    はじめまして。 ただいま独学でプログラミングを勉強しており、 まず手始めに占いサイトを自作で作ってみたいと思っています。 できれば星座占いや四柱推命を使ったちょっと本格的な占いサイトをつくりたいと考えています。 そこで質問なのですが、占いサイトを作るに当たってなにか良いCGIなどはありますか? ちなみに、現在まで勉強してきたのはJavascript、PHPとmysqlなどで、 簡単なスクリプトくらいなら組めるレベルです。 よろしくお願いします。

専門家に質問してみよう