- PR -

六曜の計算

1
投稿者投稿内容
kenta
会議室デビュー日: 2006/05/30
投稿数: 4
投稿日時: 2006-05-30 22:21
はじめまして、thusanderと申します。

現在、業務で、VB.netを利用して六陽の計算を行うメソッドを開発しています。
そこで、質問なのですが六曜を計算する一般的なロジックってあるのでしょうか?Outlookで六曜が表示されているので同じロジックで取得したいと考えています。

よろしくお願いします。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2006-05-30 22:52
http://www.google.com/search?hl=ja&lr=lang_ja&q=%98Z%97j+%8Cv%8EZ

4つめや5つめあたり
しゃく
会議室デビュー日: 2001/12/04
投稿数: 4
投稿日時: 2006-05-31 00:43

旧暦 for VB
Visual BasicまたはExcel VBAで旧暦を計算する標準モジュール(ソース付き)
http://www.vector.co.jp/soft/win95/personal/se243537.html
が参考になるかも
kenta
会議室デビュー日: 2006/05/30
投稿数: 4
投稿日時: 2006-05-31 04:05
Jittaさん、しゃくさん返信ありがとうございます。

>しゃくさん
旧暦 for VBなのですが現在も参考にさせて頂いているのですが、2224年 4月1日
辺りから計算結果が合わなくなっており混乱しております(暦の百科事典を正とした場合)。

六曜の定義自体が曖昧だと思っているので(一説によると伊勢神宮が決めているとか)Outlookと同じ計算をしているということで、お客様に納得頂こうかと思いこのような質問をさせて頂きました。
Excelの関数を呼ぶというのがベストの方法ですかね?

未熟者で申し訳ありませんがよろしくお願い致します。
m.m.
常連さん
会議室デビュー日: 2003/04/22
投稿数: 20
投稿日時: 2006-05-31 09:14
>2224年 4月1日辺りから計算結果が合わなくなっており
200年先の六曜を知りたいという「明確」な要求があるのですか?
200年先までそのシステムを使うのですか?
そうでないなら、必要十分すぎる精度だと思いますが。
#ロジックにこだわりすぎてはいけません。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-05-31 09:37
有用なログがあります。

  六曜の計算

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
omatsu
常連さん
会議室デビュー日: 2002/08/29
投稿数: 20
投稿日時: 2006-06-01 00:32
引用:
六曜の定義自体が曖昧だと思っているので(一説によると伊勢神宮が決めているとか)



六曜の定義自体は、完全に明確です。
六曜 = (月 + 日) mod 6
であって、それ以上でもそれ以下でもありません。
ただし、その「月」と「日」は、旧暦なのでやっかいなわけです。

・一つは、「旧」暦なので、歴法の規範的な定義が現在存在しない。
・もう一つは、グレゴリオ暦みたいに機械的な計算で決まるものではなく、
天文予測計算をして求めなくてはいけない。
# なので、"2224年" の計算なんて、ナンセンス。
# そんな年まで、月と地球の運動が、計算した予測どおりなわけがない。
といった問題があって一筋縄ではいきません。

で、今ちょっと MSDN Library を見てみると、「.Net Framework 2.0 を使えるのなら」、という条件がつきますが、
System.Globalization.JapaneseLunisolarCalendar
というクラスがありますね。
旧暦月日を算出するのに使えるかもしれません。
どの程度使えるものかわかりませんが、「Microsoft 標準の計算方法で算出しております」という言い訳が立つかも。
# その場合、「月」の値に GetMonth の値をそのまま使わないように。

[ メッセージ編集済み 編集者: omatsu 編集日時 2006-06-01 02:07 ]
kenta
会議室デビュー日: 2006/05/30
投稿数: 4
投稿日時: 2006-06-06 00:47
返信ありがとうございました。
System.Globalization.JapaneseLunisolarCalendar
で実装し、ただいまテストを行っています。

本当にありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)