亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 星期、干支、二十八宿計算公式 (2000年12月6日).txt

?? 自己對DELPHI學習的一點體會
?? TXT
字號:
星期、干支、二十八宿計算公式 (2000年12月6日) 

本站更新  分類:   作者:來自未名碼頭  推薦:   閱讀次數:765  
(http://www.codesky.net)  

--------------------------------------------------------------------------------

1. 求星期公式
星期=[5+A(實際天數)] mod 7

2. 干支計算公式
六十甲子干支序號,從1->59->0。
六十甲子干支序號=[23+A(實際天數)] mod 60

3. 二十八宿計算公式
二十八宿序號=[23+A(實際天數)] mod 28

4. 實際天數A的計算
A=B(基本天數)+C(閏日天數)
B=(計算年-1)*365+(要計算到年的月日天數)
例:1984年2月1日的基本天數B=(1984-1)*365+(31+1)=723827(天),
其中,31是1月為31天,1為2月1日為1天。
公元308年8月28日的基本天數
B=(308-1)*365+(31+28+31+30+31+30+31+27)=112055+239=112294(天)
這里的(要計算到年的月日天數),用的是公歷,月日天數的規則我好
象小學就學過了。哈哈……

C=(計算年-1) div 4 -誤差修正值 + fixValue2
fixValue2為0或者1。常值為0,當年數為閏年(公歷閏年法)之中的3月
1日之后的為1。

誤差修正值推算:
公元元年1月1日至1582年10月14日為0。
1582年10月15日至1699年12月31日為10。
從1701年1月1日起每增加一個世紀累加1,但能被400除盡的世紀不累
加1。此方法推算即可。
--有一個問題,1700年這一年的修正值應為多少呢?算法中正好沒有
講到,但看來應該是10。

例1701年1月1日起誤差值為11,而1801年1月1日起誤差修正值為12,
而1901年1月1日起誤差修正值為13,
但2001年誤差修正值仍為13,因為2000年能被400整除,故不累加。而
2101年1月1日起誤差修正值為14。

5. 實例:1998.3.15的星期、干支與二十八宿
B=(1998-1)*365+(31+28+15)=728979
C=(1998-1) div 4 - 13 + 0 = 486
A=B+C=728979+486=729465
星期序號=(5+729465) mod 7=0,即為星期日
干支序號=(13+729465) mod 60=58,即為辛酉
二十八宿序號=(23+729465) mod 28=4,即為房

===================================================
好可怕!還有一些其它公式……但好象有些參數不知道怎么得到:

二十四節交節日算法:
用已知年的交接時辰加上22個小時35分,超過24要減去24,分數足60
進1個小時,即得到8年后的各節交節時辰。
如2000年雨水交節時辰為16時22分,則2008年雨水交節時辰為14時52
分。
因為16時22分+22時35分=38時57分。38-24=14時。
誰知道公元元年到公元八年的交節日,這個算法就可以實現了。--好
象逆算法可以解決這個問題。誰試試?

農歷閏月算法:
農歷中,二十四節氣(十二節氣和十二中氣)的中氣落在月末的話,下
個月就沒有中氣。農歷將這種有節(節氣)無氣(中氣)的月份規定為閏
月。平均計算,19年有七個閏月。
但二十四個節氣的十二節氣和十二中氣是怎么分的呢?我沒有資料,
估記應該是一節氣一中氣這樣交叉。 :(

unit CNYear; 

interface 
uses sysutils; 
type TCNDate = Cardinal; 
function DecodeGregToCNDate(dtGreg:TDateTime):TCNDate; 
function 
GetGregDateFromCN(cnYear,cnMonth,cnDay:word;bLeap:Boolean=Fal
se):TDateTime; 
function GregDateToCNStr(dtGreg:TDateTime):String; 
function isCNLeap(cnDate:TCNDate):boolean; 
implementation 
const cstDateOrg:Integer=32900; //公歷1990-01-27的TDateTime表
示 對應農歷1990-01-01 
const cstCNYearOrg=1990; 
const cstCNTable:array[cstCNYearOrg..cstCNYearOrg + 60] of 
WORD=( // unsigned 16-bit 
24402, 3730, 3366, 13614, 2647, 35542, 858, 1749, //1997 
23401, 1865, 1683, 19099, 1323, 2651, 10926, 1386, //2005 
32213, 2980, 2889, 23891, 2709, 1325, 17757, 2741, //2013 
39850, 1490, 3493, 61098, 3402, 3221, 19102, 1366, //2021 
2773, 10970, 1746, 26469, 1829, 1611, 22103, 3243, //2029 
1370, 13678, 2902, 48978, 2898, 2853, 60715, 2635, //2037 
1195, 21179, 1453, 2922, 11690, 3474, 32421, 3365, //2045 
2645, 55901, 1206, 1461, 14038); //2050 
//建表方法: 
// 0101 111101010010 高四位是閏月位置,后12位表示大小月,大月30
天,小月29天, 
//閏月一般算小月,但是有三個特例2017/06,2036/06,2047/05 
//對于特例則高四位的閏月位置表示法中的最高為設置為1 特殊處理
用wLeapNormal變量 
// //2017/06 28330->61098 2036/06 27947->60715 2047/05 
23133->55901 

//如果希望用匯編,這里有一條信息:農歷不會滯后公歷2個月. 
//將公歷轉換為農歷 
//返回:12位年份+4位月份+5位日期 
function DecodeGregToCNDate(dtGreg:TDateTime):TCNDate; 
var 
iDayLeave:Integer; 
wYear,wMonth,wDay:WORD; 
i,j:integer; 
wBigSmallDist,wLeap,wCount,wLeapShift:WORD; 
label OK; 
begin 
result := 0; 
iDayLeave := Trunc(dtGreg) - cstDateOrg; 
DecodeDate(IncMonth(dtGreg,-1),wYear,wMonth,wDay); 
if (iDayLeave < 0) or (iDayLeave > 22295 )then Exit; 
//Raise Exception.Create('目前只能算1990-01-27以后的'); 
//Raise Exception.Create('目前只能算2051-02-11以前的'); 
for i:=Low(cstCNTable) to High(cstCNTable) do begin 
wBigSmallDist := cstCNTable[i]; 
wLeap := wBigSmallDist shr 12; 
if wLeap > 12 then begin 
wLeap := wLeap and 7; 
wLeapShift := 1; 
end else 
wLeapShift := 0; 
for j:=1 to 12 do begin 
wCount:=(wBigSmallDist and 1) + 29; 
if j=wLeap then wCount := wCount - wLeapShift; 
if iDayLeave < wCount then begin 
Result := (i shl 9) + (j shl 5) + iDayLeave + 1; 
Exit; 
end; 
iDayLeave := iDayLeave - wCount; 
if j=wLeap then begin 
wCount:=29 + wLeapShift; 
if iDayLeave < wCount then begin 
Result := (i shl 9) + (j shl 5) + iDayLeave + 1 + (1 shl 21); 
Exit; 
end; 
iDayLeave := iDayLeave - wCount; 
end; 
wBigSmallDist := wBigSmallDist shr 1; 
end; 
end; 
//返回值: 
// 1位閏月標志 + 12位年份+4位月份+5位日期 (共22位) 
end; 
function isCNLeap(cnDate:TCNDate):boolean; 
begin 
result := (cnDate and $200000) <> 0; 
end; 
function 
GetGregDateFromCN(cnYear,cnMonth,cnDay:word;bLeap:Boolean=Fal
se):TDateTime; 
var 
i,j:integer; 
DayCount:integer; 
wBigSmallDist,wLeap,wLeapShift:WORD; 
begin 
// 0101 010010101111 高四位是閏月位置,后12位表示大小月,大月30
天,小月29天, 
DayCount := 0; 
if (cnYear < 1990) or (cnYear >2050) then begin 
Result := 0; 
Exit; 
end; 
for i:= cstCNYearOrg to cnYear-1 do begin 
wBigSmallDist := cstCNTable[i]; 
if (wBIgSmallDist and $F000) <> 0 then DayCount := DayCount + 
29; 
DayCount := DayCount + 12 * 29; 
for j:= 1 to 12 do begin 
DayCount := DayCount + wBigSmallDist and 1; 
wBigSmallDist := wBigSmallDist shr 1; 
end; 
end; 
wBigSmallDist := cstCNTable[cnYear]; 
wLeap := wBigSmallDist shr 12; 
if wLeap > 12 then begin 
wLeap := wLeap and 7; 
wLeapShift := 1; //大月在閏月. 
end else 
wLeapShift := 0; 
for j:= 1 to cnMonth-1 do begin 
DayCount:=DayCount + (wBigSmallDist and 1) + 29; 
if j=wLeap then DayCount := DayCount + 29; 
wBigSmallDist := wBigSmallDist shr 1; 
end; 
if bLeap and (cnMonth = wLeap) then //是要閏月的嗎? 
DayCount := DayCount + 30 - wLeapShift; 
result := cstDateOrg + DayCount + cnDay - 1; 
end; 

//將日期顯示成農歷字符串. 
function GregDateToCNStr(dtGreg:TDateTime):String; 
const hzNumber:array[0..10] of string=('零','一','二','三','
四','五','六','七','八','九','十'); 
function ConvertYMD(Number:Word;YMD:Word):string; 
var 
wTmp:word; 
begin 
result := ''; 
if YMD = 1 then begin //年份 
while Number > 0 do begin 
result := hzNumber[Number Mod 10] + result; 
Number := Number DIV 10; 
end; 
Exit; 
end; 
if Number<=10 then begin //可只用1位 
if YMD = 2 then //月份 
result := hzNumber[Number] 
else //天 
result := '初' + hzNumber[Number]; 
Exit; 
end; 
wTmp := Number Mod 10; //個位 
if wTmp <> 0 then result := hzNumber[wTmp]; 
wTmp := Number Div 10; //十位 
result:='十'+result; 
if wTmp > 1 then result := hzNumber[wTmp] + result; 
end; 
var 
cnYear,cnMonth,cnDay:word; 
cnDate:TCNDate; 
strLeap:string; 
begin 
cnDate:= DecodeGregToCNDate(dtGreg); 
if cnDate = 0 then begin 
result := '輸入越界'; 
Exit; 
end; 
cnDay := cnDate and $1F; 
cnMonth := (cnDate shr 5) and $F; 
cnYear := (cnDate shr 9) and $FFF; 
//測試第22位,為1表示閏月 
if isCNLeap(cnDate) then strLeap:='(閏)' else strLeap := ''; 
result := '農歷' + ConvertYMD(cnYear,1) + '年' + 
ConvertYMD(cnMonth,2) + '月' 
+ strLeap + ConvertYMD(cnDay,3) ; 
end; 
end. 


 
 


--------------------------------------------------------------------------------

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久婷婷国产综合国色天香| 国产 日韩 欧美大片| 天堂影院一区二区| 亚洲一区二区三区视频在线播放| 亚洲另类在线一区| 亚洲一区二区高清| 亚洲v中文字幕| 免费观看久久久4p| 风间由美性色一区二区三区| 成人午夜电影久久影院| 一本一道综合狠狠老| 精品视频资源站| 欧美日韩精品福利| 国产丝袜在线精品| 亚洲柠檬福利资源导航| 天天色综合天天| 国产精品18久久久久久vr| 一本大道综合伊人精品热热| 91麻豆精品国产自产在线观看一区| 欧美xxxx老人做受| 国产精品免费av| 亚洲午夜久久久久久久久电影院| 免费精品99久久国产综合精品| 热久久免费视频| 风间由美性色一区二区三区| 欧美性感一区二区三区| 久久精品无码一区二区三区| 一区二区三区在线免费| 激情综合网天天干| 91在线高清观看| 久久久久久麻豆| 亚洲国产成人精品视频| 国内精品嫩模私拍在线| 91同城在线观看| 欧美一三区三区四区免费在线看 | 国产精品综合二区| 色欧美片视频在线观看| 国产亚洲欧美一区在线观看| 亚洲va国产va欧美va观看| 国产999精品久久久久久| 欧美在线观看视频一区二区三区| 欧美精品黑人性xxxx| 亚洲国产岛国毛片在线| 日本中文字幕一区二区视频| 不卡在线视频中文字幕| 欧美成人r级一区二区三区| 一区二区三区四区不卡视频| 久久不见久久见中文字幕免费| 色88888久久久久久影院野外| 精品久久久久久亚洲综合网 | 欧美一区二区三区免费在线看| 亚洲视频免费在线观看| 美女一区二区三区| 在线视频国内一区二区| 国产亚洲一区二区三区四区 | 成人爱爱电影网址| 日韩免费视频一区二区| 国产精品国产馆在线真实露脸| 国产一区二区三区四| 欧美精品久久一区| 亚洲欧美激情一区二区| 国产一区二区女| xnxx国产精品| 美女网站一区二区| 欧美亚洲国产一卡| 中文字幕一区二区视频| 国产自产2019最新不卡| 宅男噜噜噜66一区二区66| 一区二区三国产精华液| 成人黄色免费短视频| 久久久亚洲精华液精华液精华液 | 日本韩国一区二区三区视频| 国产欧美综合在线观看第十页 | 日韩午夜在线观看视频| 午夜一区二区三区视频| 色哟哟日韩精品| 1024精品合集| 成人免费三级在线| 久久精品免视看| 国产一区二区三区免费| 在线观看91视频| 一区二区欧美在线观看| 一本色道久久加勒比精品| 综合网在线视频| 不卡高清视频专区| 国产精品女上位| 色狠狠av一区二区三区| 中文字幕日本乱码精品影院| 久久se精品一区二区| 91精品国产综合久久香蕉的特点 | 亚洲免费视频成人| a亚洲天堂av| 最新高清无码专区| 欧美中文字幕一区| 奇米精品一区二区三区在线观看| 欧美成人性战久久| 国产很黄免费观看久久| 国产精品丝袜一区| 成人黄色av电影| 亚洲一区免费在线观看| 5858s免费视频成人| 久久99精品国产| 国产精品久久久久影院| 色老汉一区二区三区| 日韩国产在线观看| 欧美精品一区二区高清在线观看| 国产福利不卡视频| 一区二区三区四区在线播放| 911精品国产一区二区在线| 韩国成人福利片在线播放| 国产精品美女久久福利网站| 在线中文字幕不卡| 蜜桃视频一区二区三区在线观看| 久久老女人爱爱| 在线亚洲人成电影网站色www| 日韩激情中文字幕| 国产精品区一区二区三| 欧美丝袜丝nylons| 国产精品66部| 亚洲国产精品久久一线不卡| 久久一区二区三区四区| 91久久精品午夜一区二区| 麻豆精品视频在线观看免费| 国产精品家庭影院| 日韩午夜激情视频| 色综合久久综合网| 国产一区二区福利| 首页国产丝袜综合| 国产精品美女久久久久久久网站| 欧美日本高清视频在线观看| 风流少妇一区二区| 美腿丝袜亚洲色图| 亚洲一区在线播放| 国产精品免费网站在线观看| 欧美一区二区大片| 在线中文字幕不卡| 成人黄色在线视频| 国内不卡的二区三区中文字幕| 一区二区三区免费| 中文字幕欧美日本乱码一线二线| 欧美日本在线播放| 99re在线精品| 国产成人av一区二区| 奇米在线7777在线精品| 夜夜揉揉日日人人青青一国产精品| 国产日韩欧美制服另类| 欧美一区二区三区的| 在线免费不卡视频| 成人av免费在线播放| 韩国三级在线一区| 男人的天堂久久精品| 亚洲自拍偷拍麻豆| 中文字幕一区二区三区不卡在线| 日韩三级精品电影久久久 | 亚洲综合成人在线| 国产精品久久久久久久午夜片| 日韩欧美国产不卡| 51午夜精品国产| 欧美少妇性性性| 日本道精品一区二区三区| 成人精品视频网站| 粉嫩av一区二区三区粉嫩| 狠狠网亚洲精品| 久久国产福利国产秒拍| 亚洲成人三级小说| 亚洲国产精品影院| 亚洲一区自拍偷拍| 亚洲免费在线电影| 亚洲美女在线一区| 成人欧美一区二区三区黑人麻豆 | 国产·精品毛片| 国产成人高清视频| 国产91丝袜在线播放0| 国产传媒一区在线| 国产福利一区二区| 国产成人精品www牛牛影视| 国产精品一卡二卡| 国产精品一区二区91| 国产精品一区二区免费不卡| 国内欧美视频一区二区| 国产在线精品一区二区不卡了| 精品一区二区精品| 激情伊人五月天久久综合| 蜜桃av噜噜一区二区三区小说| 久久精品国产亚洲一区二区三区| 麻豆国产欧美一区二区三区| 麻豆免费看一区二区三区| 日本一不卡视频| 久久99精品久久久| 国产老女人精品毛片久久| 国产成人精品影视| 成人午夜视频在线观看| 成人av资源在线观看| 91视频你懂的| 欧美性色欧美a在线播放| 欧美人妇做爰xxxⅹ性高电影| 91精品国产一区二区人妖| 欧美一区二区三区四区五区| 日韩精品一区二区三区中文精品 | 国产乱子伦视频一区二区三区|