<?xml version="1.0" encoding="GBK"?>
<article>
    <title>儒略日</title>
    <main>astronomy</main>
    <parent>basic-astronomy</parent>
    <author>汤锡文</author>
    <authorEn>tangtang</authorEn>
    <status>status-yc</status>
    <created>2005.11.05</created>
    <modified>2006.01.08</modified>
    <body><![CDATA[
<script LANGUAGE="JavaScript">
//儒略日计算
function getJD(year,month,day) {
    month+=1;
    if ((month==1 ) || (month==2)){
        year-=1;
        month+=12
    }
    var A=Math.floor(year/100);
    var B=2-A+Math.floor(A/4);
    if(year<1582 || (year==1582 && month <10) || (year==1582 && month==10 && month<15)) {
        A = 0;
        B = 0;
    }
    var C=Math.floor(365.25*year);
    var D=Math.floor(30.6001*(month+1));
    var JD=B+C+D+day+1720994.5;
    return JD;
}

function getTodayJD() {
    var today=new Date();
    var year=today.getYear();
    var month=today.getMonth();
    var day=today.getDate();
    var JD = getJD(year,month,day);
    return JD;
}
//约化儒略日计算
function getMJD(year,month,day) {
    var JD=getJD(year,month,day);
    var MJD=JD-2400000.5;
    return MJD;
}

function getTodayMJD() {
    var today=new Date();
    var year=today.getYear();
    var month=today.getMonth();
    var day=today.getDate();
    var MJD = getMJD(year,month,day);
    return MJD;
}
//儒略日转换为干支日
var jiaziTable = new Array(
'01甲子','02乙丑','03丙寅','04丁卯','05戊辰','06己巳','07庚午','08辛未','09壬申','10癸酉',
'11甲戌','12乙亥','13丙子','14丁丑','15戊寅','16己卯','17庚辰','18辛巳','19壬午','20癸未',
'21甲申','22乙酉','23丙戌','24丁亥','25戊子','26己丑','27庚寅','28辛卯','29壬辰','30癸巳',
'31甲午','32乙未','33丙申','34丁酉','35戊戌','36己亥','37庚子','38辛丑','39壬寅','40癸卯',
'41甲辰','42乙巳','43丙午','44丁未','45戊申','46己酉','47庚戌','48辛亥','49壬子','50癸丑',
'51甲寅','52乙卯','53丙辰','54丁巳','55戊午','56己未','57庚申','58辛酉','59壬戌','60癸亥'
);
function JD2Ganzhi(jd) {
    jd = jd + 0.5;
    var ganzhiDay = (jd + 49) % 60;
    if(ganzhiDay < 0) {
        ganzhiDay = ganzhiDay + 60;
    }
    return jiaziTable[ganzhiDay];
}
function year2Ganzhi(year) {
    year = year + 4712 + 24;
    var ganzhiYear = year % 60;
    if(ganzhiYear < 0) {
        ganzhiYear = ganzhiYear + 60;
    }
    return jiaziTable[ganzhiYear];
}
</script>
<script>
function setJD() {
    jd.value=getTodayJD();
}
function setMJD() {
    mjd.value=getTodayMJD();
}
function setTheJDByDate(year,month,day) {
    var theY = parseInt(year);
    var theM = parseInt(month) - 1;
    var theD = parseInt(day);
    var theJD = getJD(theY,theM,theD);
    thejd.value = theJD;
    theGanzhiYear.value = year2Ganzhi(theY);
    theganzhi.value = JD2Ganzhi(theJD);
}
function setTheJD() {
    setTheJDByDate(theyear.value,themonth.value,theday.value);
}
function setTheJDZeroDay() {
    theyear.value = -4712;
    themonth.value = 1;
    theday.value = 1;
    setTheJDByDate(theyear.value,themonth.value,theday.value);
}
function setTheJDtoday() {
    var today=new Date();
    var year=today.getYear();
    var month=today.getMonth();
    var day=today.getDate();
    theyear.value = year;
    themonth.value = month+1;
    theday.value = day;
    setTheJDByDate(theyear.value,themonth.value,theday.value);
}
</script>
<p align="center">
<font size=9pt><b>儒略日</b></font> <a href="http://www.tangtang.org" target="_blank">汤锡文</a>
</p>
儒略日（JD，Julian Date）是天文学一种连续的纪日方式，它以儒略历公元前4713年1月1日的GMT正午为第0日的开始。<br>
这里是一个格里历转换为儒略日的程序，已考虑了格里历的修正，也就是公元 1582 年十月四日的后一日为 1582 年十月十五日。<br><br>
今天的儒略日(JD):<br>
<input type="button" value="today's JD " name="button" onClick="setJD()">
<input type="text" name="jd" size="10" value="">
<br><br>
今天的约化儒略日(MJD):<br>
<input type="button" value="today's MJD" name="button" onClick="setMJD()">
<input type="text" name="mjd" size="10" value="">
<br><br>
格里历转换为儒略日:<br>
<input type="text" name="theyear" size="10" value="2005">年
<input type="text" name="themonth" size="10" value="11">月
<input type="text" name="theday" size="10" value="5">日
<input type="button" value="格里历 to 儒略日" name="button" onClick="setTheJD()">
<input type="button" value="儒略日元日" name="button" onClick="setTheJDZeroDay()">
<input type="button" value="今天的儒略日" name="button" onClick="setTheJDtoday()">
<br>
<input type="text" name="theGanzhiYear" size="10" value="">年
<input type="text" name="thejd" size="10" value="">儒略日
<input type="text" name="theganzhi" size="10" value="">
<br><br>
验证素材一：<br>
《诗经·十月之交》：“十月之交，朔月辛卯。日有食之，亦孔之丑。"<br>
这次日食出现于周幽王六年，周历十月，食分为0.58，该日期换算成公历是公元前776年9月6日。<br>
美国国家航天局数据为（A表示环食；T表示全食；H表示混合型食[日食带不同可见环食和全食]；P表示偏食）：<br>
<table cellSpacing=0 cellPadding=0 borderColor=#00659c border=1>
<tr align="center">
<td>年月日</td>
<td>食甚时刻(U.T)</td>
<td>日食类型</td>
<td>沙罗周期</td>
<td>GAMMA值</td>
<td>最大食分</td>
<td>最大食分地点的纬度</td>
<td>最大食分地点的经度</td>
<td>食甚时的太阳地平高度</td>
<td>食甚时的宽度(公里)</td>
<td>中心食延续时间</td>
</tr>
<tr align="center">
<td>-0775 Sep 06</td>
<td>01:20</td>
<td>H</td>
<td>61</td>
<td>0.875</td>
<td>1.003</td>
<td>65.9N</td>
<td>163.3W</td>
<td>29</td>
<td>19</td>
<td>00m11s</td>
</tr></table>
    ]]></body>
    <commentUrl><![CDATA[
    /
    ]]></commentUrl>
</article>

