JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » Java 技巧文件 » Java與演算法  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友    訂閱主題
reply to postflat modego to previous topicgo to next topic
本主題所含的標籤
作者 lunar.js的農國曆對照表堪誤
poppin1118





發文: 2
積分: 0
於 2012-08-07 16:59 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
最近因專案關係,有個功能會讓使用者輸入農曆日期將其轉為國曆日期
在網路上有不少網友是使用lunar.js來作轉換,但使用後很幸運的發現某個農曆日期轉成國曆日期有不正確的情形發生,於是追查一下發現lunar.js的農曆日期對照表有誤,
由於lunar.js中的農曆日期表是以16進制方式呈現,需將其轉為2進制才能理解

1-4 bits: 表示當年有無閏月,有的話為閏月的月份,沒有的話為0。
5-16 bits:為除了閏月外的正常月份是大月還是小月,1為30天,0為29天。
注意:從1月到12月對應的是第16位到第5位。
17-20 bits: 表示閏月是大月還是小月,僅當存在閏月的情況下有意義。

於是我參照了內政部提供的農國曆對照表(http://www.moi.gov.tw/dca/custom100/calendarlist.asp),利用程式去重新剖析,產生新的對照表,
提供修正過的對照表編碼給有需要的人
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
0x0a5b6, 0x0a4d0, 0x0d250, 0x1d295, 0x0b540,  /* 1915 */
0x0d6a0, 0x0ada2, 0x095b0, 0x14977, 0x049b0,  /* 1920 */
0x0a4b0, 0x0b4b5, 0x06a50, 0x06d40, 0x1ab54,  /* 1925 */
0x02b60, 0x09570, 0x052f2, 0x04970, 0x06566,  /* 1930 */
0x0d4a0, 0x0ea50, 0x16a95, 0x05ad0, 0x02b60,  /* 1935 */
0x186e3, 0x092e0, 0x1c8d7, 0x0c950, 0x0d4a0,  /* 1940 */
0x1d8a6, 0x0b550, 0x056a0, 0x1a5b4, 0x025d0,  /* 1945 */
0x092d0, 0x0d2b2, 0x0a950, 0x0b557, 0x06ca0,  /* 1950 */
0x0b550, 0x15355, 0x04da0, 0x0a5b0, 0x14573,  /* 1955 */
0x052b0, 0x0a9a8, 0x0e950, 0x06aa0, 0x0aea6,  /* 1960 */
0x0ab50, 0x04b60, 0x0aae4, 0x0a570, 0x05260,  /* 1965 */
0x0f263, 0x0d950, 0x05b57, 0x056a0, 0x096d0,  /* 1970 */
0x04dd5, 0x04ad0, 0x0a4d0, 0x0d4d4, 0x0d250,  /* 1975 */
0x0d558, 0x0b540, 0x0b6a0, 0x195a6, 0x095b0,  /* 1980 */
0x049b0, 0x0a974, 0x0a4b0, 0x0b27a, 0x06a50,  /* 1985 */
0x06d40, 0x0af46, 0x0ab60, 0x09570, 0x04af5,  /* 1990 */
0x04970, 0x064b0, 0x074a3, 0x0ea50, 0x06b58,  /* 1995 */
0x05ac0, 0x0ab60, 0x096d5, 0x092e0, 0x0c960,  /* 2000 */
0x0d954, 0x0d4a0, 0x0da50, 0x07552, 0x056a0,  /* 2005 */
0x0abb7, 0x025d0, 0x092d0, 0x0cab5, 0x0a950,  /* 2010 */
0x0b4a0, 0x0baa4, 0x0ad50, 0x055d9, 0x04ba0,  /* 2015 */
0x0a5b0, 0x15176, 0x052b0, 0x0a930, 0x07954,  /* 2020 */
0x06aa0, 0x0ad50, 0x05b52, 0x04b60, 0x0a6e6,  /* 2025 */
0x0a4e0, 0x0d260, 0x0ea65, 0x0d530, 0x05aa0,  /* 2030 */
0x076a3


新的對照表,再與原本lunar.js內的對照表重新比對,其中約有7個西元年有異,如下圖:
如有誤請指正,謝謝..

(縮略圖,點擊圖片鏈接看原圖)


poppin1118 edited on 2012-08-07 17:13
reply to postreply to post
話題樹型展開
人氣 標題 作者 字數 發文時間
3975 lunar.js的農國曆對照表堪誤 poppin1118 1927 2012-08-07 16:59
» JWorld@TW »  Java 技巧文件 » Java與演算法

reply to postflat modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8