📄 xx2.htm
字号:
<script language=javascript>
function int2(v){ return Math.floor(v);}
var JD={ //日期元件
Y:2000, M:1, D:1, h:12, m:0, s:0,
toJD:function(){ //公历转儒略日
var y=this.Y, m=this.M, n=0; //取出年月
if(m<=2) m+=12,y--;
if(this.Y*372+this.M*31+this.D>=588829)//判断是否为格里高利历日1582*372+10*31+15
n =int2(y/100), n =2-n+int2(n/4);//加百年闰
n +=int2(365.25*(y+4716)+0.01); //加上年引起的偏移日数
n +=int2(30.6*(m+1))+this.D; //加上月引起的偏移日数及日偏移数
n +=((this.s/60+this.m)/60+this.h)/24 - 1524.5;
return n;
},
setFromJD:function(jd){ //儒略日数转公历
jd+=0.5;
var A=int2(jd), F=jd-A, D; //取得日数的整数部份A及小数部分F
if(A>=2299161) D=int2((A-1867216.25)/36524.25),A+=1+D-int2(D/4);
A +=1524; //向前移4年零2个月
this.Y =int2((A-122.1)/365.25);//年
D =A-int2(365.25*this.Y); //去除整年日数后余下日数
this.M =int2(D/30.6001); //月数
this.D =D-int2(this.M*30.6001);//去除整月日数后余下日数
this.Y-=4716; this.M--;
if(this.M>12) this.M-=12;
if(this.M<=2) this.Y++;
//日的小数转为时分秒
F*=24; this.h=int2(F); F-=this.h;
F*=60; this.m=int2(F); F-=this.m;
F*=60; this.s=F;
},
toStr:function(){ //日期转为串
var Y=" "+this.Y,M="0"+this.M, D="0"+this.D;
var h=this.h,m=this.m,s=int2(this.s+.5);
if(s>=60) s-=60,m++;
if(m>=60) m-=60,h++;
h="0"+h; m="0"+m; s="0"+s;
Y=Y.substr(Y.length-5,5); M=M.substr(M.length-2,2); D=D.substr(D.length-2,2);
h=h.substr(h.length-2,2); m=m.substr(m.length-2,2); s=s.substr(s.length-2,2);
return Y+"-"+M+"-"+D+" "+h+":"+m+":"+s;
}
};
var gan=Array("甲","乙","丙","丁","戊","己","庚","辛","壬","癸");
gan['甲']=0;gan['乙']=1;gan['丙']=2;gan['丁']=3;gan['戊']=4;
gan['己']=5;gan['庚']=6;gan['辛']=7;gan['壬']=8;gan['癸']=9;
function getsjb(lun,nd,ra,ye){//取数据表
var i,j,k,p,v,v2,rn,Y;
nd=nd.split(" "); for(i=0;i<4;i++) nd[i]-=0;
//提取朔日和节气
JD.h=12;JD.m=JD.s=0;
ra.length=ye.length=0;
var n1=-1,n2=-1;
var qa=new Array();
for(i=0;i<lun.length;i++){
v=lun[i]; if(!v) continue;
if(v.substr(0,1)=="-") {
Y=v-0, rn=1;
continue;
}
if(Y==nd[0] && rn==nd[1]) n1=qa.length;
if(Y==nd[2] && rn==nd[3]) n2=qa.length;
JD.Y = Y;
JD.M = v.substr(0,2)-0;
JD.D = v.substr(2,2)-0;
if(rn<6&&JD.M>8) JD.Y--;
if(rn>8&&JD.M<5) JD.Y++;
qa[qa.length]=JD.toJD(); //初一
if(rn==1) ye[ye.length]=qa.length-1; //年首的月积数
rn++;
}
if(n1==-1||n2==-1) return 'err';
//取朔
for(i=n1;i<=n2;i++) ra[ra.length]=qa[i];
ra.jd=ra[0]-0.5;
for(i=1;i<ra.length;i++) ra[i]-=ra[0];
ra[0]=0;
}
function nihe(r,k){//拟合计算
var b=0;
//var k=365.2422/8; if(r[1]-r[0]<33) k=29.5306; //斜率
var i,j,kk,v;
var k1=k-1,k2=k+1;
for(kk=0;kk<12;kk++){ //查找次数
var bm=-1000,bM=1000,bmi=-1;
for(i=0;i<r.length;i++){
v=r[i]-(k*i+b); //直线至少要上移的量
if(v>bm) bm=v,bmi=i;
if(v<bM) bM=v;
}
var h=(bM+1-bm)/2;
if(h>-1e-7){ b+=bm+h; r.gk = k; r.gb = b; r.gh = h; return "ok"; }
for(i=0;i<r.length;i++){
if(i==bmi) continue;
v=( r[i]+1 - r[bmi] ) / (i-bmi);
if(i<bmi && v>k1) k1=v;
if(i>bmi && v<k2) k2=v;
if(k1>k2) return "无解";
}
k=(k1+k2)/2;
b=r[bmi]-k*bmi;
}
return "查找"+kk+"次未找到解";
}
function chec(){
var i, nd=tin.innerText, ta=nlb.innerText, s='',c2;
var ra=new Array(), ye=new Array();
nd=nd.split('\r\n');
ta=ta.split('\r\n');
for(i=0;i<nd.length;i++){
if(!nd[i]) continue;
if(getsjb(ta,nd[i],ra,ye)=='err') alert("表提取错误");
c2=nihe(ra,29+499/940);
if(c2=='ok') s += (ra.gb+ra.jd).toFixed(6)+' ' + ra.gk.toFixed(8) + ' h=' + ra.gh.toFixed(8) +'\r\n';
else s += c2+'\r\n';
}
//年积数处理
c2=nihe(ye,12.37);
if(c2=='ok'){
s+='年首积月 b='+ye.gb.toFixed(6)+' k='+ye.gk.toFixed(8)+' h='+ye.gh.toFixed(6);
} else s+='年首月积无解';
//alert(ra);
out.innerText = '适用于-479年-221年\r\n平朔\r\n'+s;
JD.setFromJD(ra.jd+0.5+ra[ra.length-1])
// alert( JD.toStr() );
}
/**
错误
带a表示改后与方诗铭的相同
-328年2.20 改2.19
-257年5.13 改5.14 a
-249年7.14 改7.13 a
**/
</script>
<a href=index.htm>返回</a>
<input type=button value='确定' onclick="chec()"><br>
<textarea id=tin cols=80 rows=20>
-479 1 -220 13
</textarea><br>
<textarea id=out cols=80 rows=20></textarea><br>
<textarea id=nlb style="display:none">
-479
1211
0109
0208
0309
0408
0507
0606
0705
0804
0902
1002
1031
-478
1130
1229
0128
0226
0328
0427
0526
0625
0724
0823
0921
1021
1119
-477
1219
0117
0216
0317
0416
0515
0614
0713
0812
0911
1010
1109
-476
1208
0107
0205
0306
0404
0504
0602
0702
0731
0830
0928
1028
-475
1127
1226
0125
0223
0325
0423
0523
0621
0721
0819
0918
1017
1116
-474
1215
0114
0212
0314
0413
0512
0611
0710
0809
0907
1007
1105
-473
1205
0103
0202
0303
0402
0501
0531
0630
0729
0828
0926
1026
1124
-472
1224
0122
0221
0321
0420
0519
0618
0717
0816
0914
1014
1113
-471
1212
0111
0209
0311
0409
0509
0607
0707
0805
0904
1003
1102
-470
1201
1231
0129
0228
0330
0428
0528
0626
0726
0824
0923
1022
1121
-469
1220
0119
0217
0319
0417
0517
0616
0715
0814
0912
1012
1110
-468
1210
0108
0207
0307
0406
0505
0604
0703
0802
0831
0930
1030
-467
1128
1228
0126
0225
0326
0425
0524
0623
0722
0821
0919
1019
1117
-466
1217
0116
0214
0316
0414
0514
0612
0712
0810
0909
1008
1107
-465
1206
0105
0203
0305
0403
0503
0602
0701
0731
0829
0928
1027
1126
-464
1225
0124
0222
0323
0421
0521
0619
0719
0817
0916
1016
1114
-463
1214
0112
0211
0312
0411
0510
0609
0708
0807
0905
1005
1103
-462
1203
0102
0131
0302
0331
0430
0529
0628
0727
0826
0924
1024
1122
-461
1222
0120
0219
0320
0419
0519
0617
0717
0815
0914
1013
1112
-460
1211
0110
0208
0309
0407
0507
0605
0705
0804
0902
1002
1031
-459
1130
1229
0128
0226
0328
0426
0526
0624
0724
0822
0921
1020
1119
-458
1219
0117
0216
0317
0416
0515
0614
0713
0812
0910
1010
1108
-457
1208
0106
0205
0306
0405
0505
0603
0703
0801
0831
0929
1029
-456
1127
1227
0125
0224
0324
0423
0522
0621
0721
0819
0918
1017
1116
-455
1215
0114
0212
0314
0412
0512
0610
0710
0808
0907
1006
1105
-454
1205
0103
0202
0303
0402
0501
0531
0629
0729
0827
0926
1025
1124
-453
1223
0122
0221
0322
0421
0520
0619
0718
0817
0915
1015
1113
-452
1213
0111
0210
0310
0409
0508
0607
0707
0805
0904
1003
1102
-451
1201
1231
0129
0228
0329
0428
0527
0626
0725
0824
0922
1022
1121
-450
1220
0119
0217
0319
0417
0517
0615
0715
0813
0912
1011
1110
-449
1209
0108
0207
0308
0407
0506
0605
0704
0803
0901
1001
1030
-448
1129
1228
0127
0225
0326
0424
0524
0623
0722
0821
0919
1019
1117
-447
1217
0115
0214
0315
0414
0513
0612
0711
0810
0909
1008
1107
-446
1206
0105
0203
0305
0403
0503
0601
0701
0730
0829
0927
1027
1125
-445
1225
0124
0222
0324
0422
0522
0620
0720
0818
0917
1016
1115
-444
1214
0113
0211
0312
0410
0510
0609
0708
0807
0905
1005
1103
-443
1203
0101
0131
0301
0331
0429
0529
0627
0727
0826
0924
1024
1122
-442
1222
0120
0219
0320
0419
0518
0617
0716
0815
0913
1013
1111
-441
1211
0110
0208
0310
0408
0508
0606
0706
0804
0903
1002
1101
-440
1130
1230
0128
0227
0328
0426
0526
0624
0724
0822
0921
1020
1119
-439
1218
0117
0215
0317
0415
0515
0613
0713
0812
0910
1010
1108
-438
1208
0106
0205
0306
0405
0504
0603
0702
0801
0830
0929
1028
-437
1127
1227
0125
0224
0325
0424
0523
0622
0721
0820
0918
1018
1116
-436
1216
0114
0213
0314
0412
0512
0610
0710
0808
0907
1006
1105
-435
1204
0103
0201
0303
0401
0501
0530
0629
0729
0827
0926
1025
1124
-434
1223
0122
0220
0322
0420
0520
0618
0718
0816
0915
1015
1113
-433
1213
0111
0210
0311
0410
0509
0608
0707
0806
0904
1004
1102
-432
1202
1231
0130
0229
0329
0428
0527
0626
0725
0824
0922
1022
1120
-431
1220
0118
0217
0318
0417
0516
0615
0715
0813
0912
1011
1110
-430
1209
0108
0206
0308
0406
0506
0604
0704
0802
0901
1001
1030
-429
1129
1228
0127
0225
0327
0425
0525
0623
0723
0821
0920
1019
1118
-428
1217
0116
0215
0315
0414
0513
0612
0711
0810
0908
1008
1106
-427
1206
0104
0203
0304
0403
0503
0601
0701
0730
0829
0927
1027
1125
-426
1225
0123
0222
0323
0422
0521
0620
0719
0818
0917
1016
1115
-425
1214
0113
0211
0313
0411
0511
0609
0709
0807
0906
1005
1104
-424
1203
0102
0201
0301
0331
0429
0529
0627
0727
0825
0924
1023
1122
-423
1221
0120
0218
0320
0419
0518
0617
0716
0815
0913
1013
1111
-422
1211
0109
0208
0309
0408
0507
0606
0705
0804
0903
1002
1101
-421
1130
1230
0128
0227
0328
0427
0526
0625
0724
0823
0921
1021
1120
-420
1219
0118
0216
0317
0415
0515
0613
0713
0811
0910
1009
1108
-419
1207
0106
0204
0306
0405
0504
0603
0702
0801
0830
0929
1028
-418
1127
1226
0125
0223
0325
0423
0523
0621
0721
0820
0918
1018
1116
-417
1216
0114
0213
0314
0413
0512
0611
0710
0809
0907
1007
1106
-416
1205
0104
0202
0303
0401
0501
0530
0629
0728
0827
0925
1025
1123
-415
1223
0121
0220
0322
0420
0520
0618
0718
0816
0915
1014
1113
-414
1212
0111
0209
0311
0409
0509
0608
0707
0806
0904
1004
1102
-413
1202
1231
0130
0228
0330
0428
0528
0626
0726
0824
0923
1023
1121
-412
1221
0119
0218
0318
0417
0516
0615
0714
0813
0911
1011
1109
-411
1209
0107
0206
0308
0406
0506
0604
0704
0802
0901
0930
1030
-410
1128
1228
0126
0225
0326
0425
0525
0623
0723
0821
0920
1019
1118
-409
1217
0116
0214
0316
0414
0514
0612
0712
0810
0909
1009
1107
-408
1207
0105
0204
0304
0403
0502
0601
0630
0730
0828
0927
1026
1125
-407
1225
0123
0222
0323
0422
0521
0620
0719
0818
0916
1016
1114
-406
1214
0112
0211
0312
0411
0511
0609
0709
0807
0906
1005
1104
-405
1203
0102
0131
0302
0331
0430
0529
0628
0727
0826
0925
1024
1123
-404
1222
0121
0219
0320
0418
0518
0616
0716
0814
0913
1012
1111
-403
1211
0109
0208
0309
0408
0507
0606
0705
0804
0902
1002
1031
-402
1130
1229
0128
0226
0328
0427
0526
0625
0724
0823
0921
1021
1119
-401
1219
0117
0216
0317
0416
0515
0614
0713
0812
0911
1010
1109
-400
1208
0107
0205
0306
0404
0504
0602
0702
0731
0830
0928
1028
-399
1127
1226
0125
0223
0325
0423
0523
0621
0721
0819
0918
1017
1116
-398
1215
0114
0212
0314
0413
0512
0611
0710
0809
0907
1007
1105
-397
1205
0103
0202
0303
0402
0501
0531
0630
0729
0828
0926
1026
1124
-396
1224
0122
0221
0321
0420
0519
0618
0717
0816
0914
1014
1113
-395
1212
0111
0209
0311
0409
0509
0607
0707
0805
0904
1003
1102
-394
1201
1231
0129
0228
0330
0428
0528
0626
0726
0824
0923
1022
1121
-393
1220
0119
0217
0319
0417
0517
0616
0715
0814
0912
1012
1110
-392
1210
0108
0207
0307
0406
0505
0604
0703
0802
0831
0930
1030
-391
1128
1228
0126
0225
0326
0425
0524
0623
0722
0821
0919
1019
1117
-390
1217
0116
0214
0316
0414
0514
0612
0712
0810
0909
1008
1107
-389
1206
0105
0203
0305
0403
0503
0602
0701
0731
0829
0928
1027
1126
-388
1225
0124
0222
0323
0421
0521
0619
0719
0817
0916
1016
1114
-387
1214
0112
0211
0312
0411
0510
0609
0708
0807
0905
1005
1103
-386
1203
0102
0131
0302
0331
0430
0529
0628
0727
0826
0924
1024
1122
-385
1222
0120
0219
0320
0419
0519
0617
0717
0815
0914
1013
1112
-384
1211
0110
0208
0309
0407
0507
0605
0705
0804
0902
1002
1031
-383
1130
1229
0128
0226
0328
0426
0526
0624
0724
0822
0921
1020
1119
-382
1219
0117
0216
0317
0416
0515
0614
0713
0812
0910
1010
1108
-381
1208
0106
0205
0306
0405
0505
0603
0703
0801
0831
0929
1029
-380
1127
1227
0125
0224
0324
0423
0522
0621
0721
0819
0918
1017
1116
-379
1215
0114
0212
0314
0412
0512
0610
0710
0808
0907
1006
1105
-378
1205
0103
0202
0303
0402
0501
0531
0629
0729
0827
0926
1025
1124
-377
1223
0122
0221
0322
0421
0520
0619
0718
0817
0915
1015
1113
-376
1213
0111
0210
0310
0409
0508
0607
0707
0805
0904
1003
1102
-375
1201
1231
0129
0228
0329
0428
0527
0626
0725
0824
0922
1022
1121
-374
1220
0119
0217
0319
0417
0517
0615
0715
0813
0912
1011
1110
-373
1209
0108
0207
0308
0407
0506
0605
0704
0803
0901
1001
1030
-372
1129
1228
0127
0225
0326
0424
0524
0623
0722
0821
0919
1019
1117
-371
1217
0115
0214
0315
0414
0513
0612
0711
0810
0909
1008
1107
-370
1206
0105
0203
0305
0403
0503
0601
0701
0730
0829
0927
1027
1125
-369
1225
0124
0222
0324
0422
0522
0620
0720
0818
0917
1016
1115
-368
1214
0113
0211
0312
0410
0510
0609
0708
0807
0905
1005
1103
-367
1203
0101
0131
0301
0331
0429
0529
0627
0727
0826
0924
1024
1122
-366
1222
0120
0219
0320
0419
0518
0617
0716
0815
0913
1013
1111
-365
1211
0110
0208
0310
0408
0508
0606
0706
0804
0903
1002
1101
-364
1130
1230
0128
0227
0328
0426
0526
0624
0724
0822
0921
1020
1119
-363
1218
0117
0215
0317
0415
0515
0613
0713
0812
0910
1010
1108
-362
1208
0106
0205
0306
0405
0504
0603
0702
0801
0830
0929
1028
-361
1127
1227
0125
0224
0325
0424
0523
0622
0721
0820
0918
1018
1116
-360
1216
0114
0213
0314
0412
0512
0610
0710
0808
0907
1006
1105
-359
1204
0103
0201
0303
0401
0501
0530
0629
0729
0827
0926
1025
1124
-358
1223
0122
0220
0322
0420
0520
0618
0718
0816
0915
1015
1113
-357
1213
0111
0210
0311
0410
0509
0608
0707
0806
0904
1004
1102
-356
1202
1231
0130
0229
0329
0428
0527
0626
0725
0824
0922
1022
1120
-355
1220
0118
0217
0318
0417
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -