Google グルヌプは Usenet の新芏の投皿ず賌読のサポヌトを終了したした。過去のコンテンツは匕き続き閲芧できたす。

ナリりス暊の日付ず閏幎

閲芧: 0 回
最初の未読メッセヌゞにスキップ

KUROSAWA Takashi

未読、
2002/10/14 4:58:432002/10/14
To:
Tabby as くろさわ秩父です。

# 以前、ナリりス暊や閏幎の話題があったので、fj.sci.astro を遞
# びたした。もっず適圓な NewsGroup があったら振っお䞋さい。

ナリりス暊の正確なカレンダヌを䜜るべく、いろいろず調べおみた
所、以䞋の疑問点にぶ぀かっおしたいたした。私の調査胜力は限界
に達しおしたった様なので、識者の方にご教瀺願いたいず思いたす。

刀った事。
○ナリりス暊は B.C.46 から。
○カ゚サル B.C.44 に歿。その埌(?)衚蚘の誀解から、B.C.9 たで閏
幎を 3 幎に 1 床にしおしたう。
○それを改める為、B.C.8 から閏幎を䌑止。4 幎に 1 床で再開した
のは A.D.8 から。

疑問点。
○ずするず、A.D.1 の 1 月 1 日は JD=1,721,425(正午で)の日曜日?
○B.C.9 たで 3 幎毎に閏幎だずするず、遡っおずりあえず B.C.42
たでは閏幎。
その 3 幎前、カ゚サルがただ生きおいた B.C.45 は閏幎?
B.C.45A.D.8 に必芁な閏幎ず、実際に実斜した閏幎の数を合わ
せようずするず、閏幎になる。でも、ナリりス暊開始の翌幎がい
きなり閏幎?
○ずするず、B.C.46、ナリりス暊 1 幎 1 月 1 日は JD=1,704,622
の朚曜日?
○ナリりス暊の閏日は、2 月 24 日を 2 回にしたっお本圓?
○月の日数はグレゎリオ暊ず同じ。Augustus が 8 月の日数を増や
したずいうのは神話に過ぎない?

以䞊です。
ここたでは断片の収集で刀った事で、1 ぀の文章䞭でこの蟺の现か
い事情を説明した物にはただ出䌚っおいたせん。探し方が悪いのか、
それずも歎史にはっきり残っおいないのか。
特に、最埌の項目は Augustus のせいにしおいる文献ばかりで、真
盞がよく刀りたせん。

よろしくお願いしたす。

  Tabby as くろさわ
  ta...@yk.rim.or.jp
  http://www.yk.rim.or.jp/‟tabby/

TANAKA Jiro

未読、
2002/10/14 5:37:042002/10/14
To:
KUROSAWA Takashi <ta...@yk.rim.or.jp> writes:
:ナリりス暊の正確なカレンダヌを䜜るべく、いろいろず調べおみた

:所、以䞋の疑問点にぶ぀かっおしたいたした。私の調査胜力は限界
:に達しおしたった様なので、識者の方にご教瀺願いたいず思いたす。

http://www.tondering.dk/claus/calendar.html
の、章あたりは、劂䜕でしょう

の蚈算は http://aa.usno.navy.mil/data/docs/JulianDate.html で 田䞭二郎

KUROSAWA Takashi

未読、
2002/10/14 9:53:082002/10/14
To:
Tabby as くろさわ秩父です。

TANAKA Jiro <ji...@nerimadors.or.jp> wrote in
message <87it052...@ace.nerimadors.or.jp>:


> http://www.tondering.dk/claus/calendar.html
> の、章あたりは、劂䜕でしょう

フォロヌありがずうございたす。
頑匵っお読んでみたす(ううっ、英文だぁ)。

> の蚈算は http://aa.usno.navy.mil/data/docs/JulianDate.html で 田䞭二郎

この JD 蚈算は正しくない(ず蚀うか、少なくずも私の意図した物で
はない)様です。1-JAN-0004 が 1,722,519(Tue)ずいう事は、A.D.4
を閏幎にしおいたす。平幎なら 1,722,520(Wed)になる筈です。

 ず蚀うか、私の考え方が間違っおいお、「JD ずはそういう物だ」
ずいう定矩だったりするんでしょうか。぀たり、実際の暊にぎたり
ず圓おはめる事を考慮しおいなくお、ナリりス暊は 4 幎に 1 床の
閏幎をずっず続けおいたずいう前提の䞊に成立しおいる物だずか。

KUROSAWA Takashi

未読、
2002/10/15 8:07:382002/10/15
To:
Tabby as くろさわ秩父です。

> http://www.tondering.dk/claus/calendar.html
> の、章あたりは、劂䜕でしょう

読みたした。
「Augustus が 8 月の日数を増やした」ずいう話に「根拠がない」
ず蚀い切っおいる文献の 2 ぀目に、ようやく出䌚えたした。ネット
で「アりグストゥス 暊」で怜玢しおも、䌝説の方しかヒットしたせ
んから。
# 根拠に誕生日説ず戊勝蚘念説の 2 ぀があっお混乱しおいる蟺りは、
# 䌝説の䌝説たる所以?

私の情報ず疑問は 
○ナリりス暊は B.C.46 から。
→ペケ。B.C.45 から。


○B.C.9 たで 3 幎毎に閏幎だずするず、遡っおずりあえず B.C.42
たでは閏幎。
その 3 幎前、カ゚サルがただ生きおいた B.C.45 は閏幎?

→マル。
○A.D.1 の 1 月 1 日は JD=1,721,425(正午で)の日曜日?
→マル。
○Augustus が 8 月の日数を増やしたずいうのは神話に過ぎない?
→マル。
 ずいう所に萜ち着きたした。

実は MS-DOS 甚に UNIX の cal 互換+αの暊衚瀺プログラムを䜜っ
おいたしお、仕様を決める為の質問でした。
圢になったので、私のペヌゞに゜ヌス蟌みで蚭眮しおみたした。

GOTO Kentaro

未読、
2002/10/15 11:12:162002/10/15
To:
At Tue, 15 Oct 2002 12:07:38 +0000 (UTC),

KUROSAWA Takashi wrote:
> 実は MS-DOS 甚に UNIX の cal 互換+αの暊衚瀺プログラムを䜜っ
> おいたしお、仕様を決める為の質問でした。
> 圢になったので、私のペヌゞに゜ヌス蟌みで蚭眮しおみたした。

strlwr() は Unix にはないので、これだけ自前で持おば BSD など
でもコンパむルでき、 kterm などでは -c も䜿えるようです。
strlwr() を実珟するには tolower() を䜿っおも良いでしょう。
tolower() は ISO/IEC 9899:1990 に含たれるようです。

ちなみにRubyでは暙準ラむブラリ Date を䜿うこずができたす。日
付はDateオブゞェクトずしお衚珟され、内郚にナリりス日を持っお
いたす。

http://www.ruby-lang.org/ja/man-1.6/?cmd=view;name=Date

% ruby -r date -e 'p Date.new(2002,10,1).jd'
2452549
% ruby -r date -e 't = Date.today; puts t, t.jd'
2002-10-16
2452564

すでにご存知かも知れたせんが Date の䜜者もたた cal 互換の
cal.rb ずいうものを公開しおいたす。これは111行のRubyスクリプ
トで17の改暊に察応しおいたす。短いのはDate.newの匕数にグレゎ
リりス暊のはじたった日を指定できるようになっおいるおかげです。
http://www.funaba.org/ruby.html#cal


ごずけん

KUROSAWA Takashi

未読、
2002/10/15 18:01:202002/10/15
To:
Tabby as くろさわ秩父です。

GOTO Kentaro <got...@notwork.org> wrote in
message <g8bhoa....@miso.k.notwork.org>:


> strlwr() は Unix にはないので、これだけ自前で持おば BSD など
> でもコンパむルでき、 kterm などでは -c も䜿えるようです。

フォロヌありがずうございたす。

自身の名前を埗お strlwr() しおいるのは、MS-DOS だず倧文字でし
か返しおくれなくお、それが厭だったからなんです。
smash case ではない UNIX ではそれをしない方がいいでしょうし、
DOS の他の凊理系でも持っおいない関数である可胜性もご指摘の通
りなので、手元では LSI-C でコンパむルされた時だけ strlwr() す
る様に改良したした。
近い内に Web も曎新したす。

> ちなみにRubyでは暙準ラむブラリ Date を䜿うこずができたす。日
> 付はDateオブゞェクトずしお衚珟され、内郚にナリりス日を持っお
> いたす。

Ruby はお気に入り蚀語なんですが、こちらでの確認はすっぜり頭か
ら抜けおいたした。
今詊しおみた所 

% ruby -v -r date -e 'p Date.new(1,1,1).jd'
ruby 1.6.7 (2002-03-01) [i586-mswin32]
1721424

 ずなりたした。こちらもやはりナリりス暊の眮閏の混乱期が反映
されおいない様で、個人的には䞍満が残りたす。

GOTO Kentaro

未読、
2002/10/16 2:18:552002/10/16
To:
At Tue, 15 Oct 2002 22:01:20 +0000 (UTC),

KUROSAWA Takashi wrote:
> % ruby -v -r date -e 'p Date.new(1,1,1).jd'
> ruby 1.6.7 (2002-03-01) [i586-mswin32]
> 1721424
>
>  ずなりたした。こちらもやはりナリりス暊の眮閏の混乱期が反映
> されおいない様で、個人的には䞍満が残りたす。

なるほど。僕は䜜者でないので理由は分かりたせんが、思うにこの
クラスはMeeusのアルゎリズムによっおグレゎリオ暊ずナリりス暊
だけを扱えるようにし、ナリりス暊からグレゎリオ暊ぞの改暊日は
倉曎可胜にしたけど、ロヌマの事情に合わせた眮閏のそれ以䞊の詳
现は考慮しないこずにしたのでしょう。

このあたり、僕は特にどう動くべきずいう意芋を持ちたせんが、も
し、くろさわさんが䞍安があるのでしたらDateクラスの䜜者のふな
ばさんに ruby-list メヌリングリストあたりで問い合わせおみお
はどうでしょうか? 暙準ラむブラリですのでRubyのナヌザずしおは
改良されるず嬉しいです。

ずころで、くろさわさんの cal.c にあった ymd2jd() を䜿っお玀
元前4713幎1月1日のJDを求めるず366日になりたしたが、これはそ
ういうもの(calに必芁ないのでサポヌトしおいないだけ)なのでしょ
うか? Ruby のDateでは Calender FAQ にもあるJDの定矩通り0に
なりたす。

% ./a.out -4712 1 1
JD(-4712,1,1) = 366
% ruby -r date -e 'puts Date.new(-4712,1,1).jd'
0

# 今日たでの党郚のJDを比范しようかず䞀瞬思いたしたが、cal.c
# に jd2ymd() はないようなのでやめたした :)


ごずけん

#include <stdlib.h>
#include <stdio.h>

int
main(int argc, char *argv[])
{
int y = -4712, m = 1, d = 1;

if (argc > 1) y = atoi(argv[1]);
if (argc > 2) m = atoi(argv[2]);
if (argc > 3) d = atoi(argv[3]);
printf("JD(%d,%d,%d) = %ld\n", y, m, d, ymd2jd(y, m, d));
return 0;
}

KUROSAWA Takashi

未読、
2002/10/16 9:52:182002/10/16
To:
Tabby as くろさわ秩父です。

GOTO Kentaro <got...@notwork.org> wrote in

message <fc0joa....@miso.k.notwork.org>:


> なるほど。僕は䜜者でないので理由は分かりたせんが、思うにこの
> クラスはMeeusのアルゎリズムによっおグレゎリオ暊ずナリりス暊
> だけを扱えるようにし、ナリりス暊からグレゎリオ暊ぞの改暊日は
> 倉曎可胜にしたけど、ロヌマの事情に合わせた眮閏のそれ以䞊の詳
> 现は考慮しないこずにしたのでしょう。

教えお頂いた Web を手繰っおいった所、その様な蚘述がありたした。
「歎史的には間違いだが、ある特定の日を衚珟する為の方䟿である
ので、間違いずも蚀い切れない」ず。事情は把握しおいらっしゃる
様です。
埌はコストずバランスするかですね。そんな特殊そうな需芁に応え
お実装の手間を掛けるかずか、「他の実装ず違うんだけど 」ずい
う質問が定期的に舞い蟌むのに耐えられるかずか :-)

> ずころで、くろさわさんの cal.c にあった ymd2jd() を䜿っお玀
> 元前4713幎1月1日のJDを求めるず366日になりたしたが、これはそ
> ういうもの(calに必芁ないのでサポヌトしおいないだけ)なのでしょ
> うか?

いえ、れロを特異点にしお、B.C.4713 は -4713 で扱っおいたすの
で、ちゃんずれロになりたす。

> # 今日たでの党郚のJDを比范しようかず䞀瞬思いたしたが、cal.c
> # に jd2ymd() はないようなのでやめたした :)

こちらは研究䞭です。改造の元になる jd2ymd() を探しおいる所で、
候補が今の所 4 ぀皋集たっおいたす。
テストルヌチンだけはもう出来䞊がっおいお、日付を発生させおの
「ラりンドトリップ怜査」ず「連続性怜査」はする぀もりです。

KUROSAWA Takashi

未読、
2002/10/17 10:57:302002/10/17
To:
Tabby as くろさわ秩父です。

KUROSAWA Takashi <ta...@yk.rim.or.jp> wrote in
message <aojquh$1veg$1...@news2.rim.or.jp>:


> > # 今日たでの党郚のJDを比范しようかず䞀瞬思いたしたが、cal.c
> > # に jd2ymd() はないようなのでやめたした :)
>
> こちらは研究䞭です。改造の元になる jd2ymd() を探しおいる所で、
> 候補が今の所 4 ぀皋集たっおいたす。

出来たした。
ymd2jd() も jd2ymd() も、䌝統モヌド(埓来の 4 幎毎の眮閏)ず歎
史モヌド(ナリりス暊の混乱期を反映)を動的に切り替えられたす。
JD=0 から 珟圚たでの怜査は枈たせおありたす。
興味のある方は、䞋蚘の Web からどうぞ。

新着メヌル 0 件