TA的每日心情 | 开心 19 小时前 |
|---|
签到天数: 3175 天 [LV.Master]无
|
本帖最后由 heinsect 于 2015-2-1 18:13 编辑 }+ r& f6 L: `( | n. u& E
* x6 d; t% ~& R) [. s
程序员计算日期是用儒略日的。
- O8 \" P0 K! m
' d( q" P0 f5 {9 D. m儒略日中的儒略和儒略历中的儒略的关系嘛,只是因为儒略日的发明人的爷爷葱白凯撒,给儿子用了大帝的名字。刚好儒略历也用了大帝的名字。
$ z" U6 {& U- U
; C* A+ m, e6 x5 ?. Y/ s单用日期的话,儒略日是从某天开始的一个日的整数。两个儒略日的差值就是相差的天数。这样想计算两个日期间的差值,计算星期几就很简单了。至于那个开始日期,儒略日的零点,用起来的时候谁也不关心,我就不讲了。% B6 _* d# ^' T
' C2 K% K7 G0 b2 t从格里高利历日期算儒略日(JDN)的公式是这个样子的:
6 w8 a6 R# g* U- A& f% z3 T& N/ h& @% r7 a/ G
先要改一下年月:
6 }0 @0 c t1 }- I) U, { - p _0 [/ D" v/ x
$ A6 m1 ^3 m0 a7 S8 n+ O0 u上面这组公式的结果呢,差不多是这个意思:) H( c/ b2 g8 h3 O# z
三月 m = 0, y=y% i( _7 R7 U5 w
...
/ o6 s; y# J1 T. f十二月 m=9, y=y3 o9 N$ U8 h, Z# t9 U
一月 m = 10, y=y-1* Z; d. ^+ N9 B6 F! C6 Q8 k, C( i
二月 m = 11, y=y-1
. z& i7 A+ i- L- \' n1 \: g2 x0 ~4 y( \4 g3 p( X! J0 p* G
那个4800,是个计算零点,大概在公元前4801年,是和前面所说的那个零点相关的。: c c( q6 R! g( d+ X4 t! ~% W6 H
然后计算儒略日的公式长是这个样子的:0 A# }8 }, a& n* G& N
0 A7 X! s9 B. {6 X5 G: Q6 c& i
4 O1 A1 e" S! i" }( h
! B) P; ~' O% ^0 p) k这个公式中最巧的部分是 floor((153m+2)/5), 做出的效果嘛,看这个表:" F2 o+ L' h+ s$ k
Mar–Jul:31 30 31 30 31Aug–Dec:31 30 31 30 31Jan–Feb:31 28
; g a2 o- z6 J/ C2 c4 e7 c6 _% ]最后面的那个系数,是相对于原点的修正值。原公式算出来的值一般太大,计算中用起来会超过32/64位字长。现在天文计算中一般会选择2000年1月1日为零点,之前有用1900年和1950年的。
$ d8 }* X, [$ D4 V( g
! g! {2 b2 Q" I. q" `从儒略日计算星期几,(JDN+1) mod 7 就好了。
' G0 y4 U' k. C* a6 ?" m
# {2 s2 f: F q5 t/ I这个公式是怎么来的呢? 1582年,教皇格里高利十三(XIII)发现,那一年的春分是3月11日,和儒略历里规定的日期3月21日差了十天。原因嘛,就是回归年的长度是365.2422,儒略历用的365.25。格十三用上了全部的指头,哦,应该是找了很多XX家之后,下令当年10月4日的后一天是10月15日,同时规定在原先四年一闰的基础上,100的整数倍年不是闰年,但400的整数倍年又是闰年。新的历法改名为格里高利历。5 ^3 a# |7 y+ K D( I
5 k+ t' E y& B7 B& w4 C+ t% L为了计算转换儒略历和格里高利历,一个法国的教会学者Joseph Justus Scaliger给出了这个公式。“儒略日”中的儒略,是他老爸的名字。' c9 Z5 R) N! S6 N7 n$ S% s m: {
P% @* U4 D. G& ] Y哦,原来的文献中用的是儒略历日期,要算儒略日是这样的:
P( d7 e+ d# `5 B8 d; T* u
0 J6 I! d5 G2 g( s( [9 d6 ]. E $ _. A/ @% I3 z. s# i) s
# d1 |) C; x; ]8 c6 n; j从儒略日转格里高利历,也有一组公式,这里有:
2 l. |5 _/ T* R& m$ i$ M& n5 B
, B! a: @/ e2 K5 y6 F, V+ m其实这些偏差,在儒略历启用之前是有人知道的。但是,始皇三十五年的某一天,一个罗马士兵在西西里岛上,拔出刀来,朝一个老人身上刺下去。这一刺,西方的科技文明停滞了一千多年。来自群组: 软件人家 |
评分
-
查看全部评分
|