Foxtable(狐表)用户栏目专家坐堂 → 有没有提取或转换农历的函数


  共有29404人关注过本帖树形打印复制链接

主题:有没有提取或转换农历的函数

帅哥哟,离线,有人找我吗?
擎天柱
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:542 积分:4243 威望:0 精华:4 注册:2008/9/1 8:27:00
有没有提取或转换农历的函数  发帖心情 Post By:2008/9/6 19:24:00 [只看该作者]

帮助还没看完。先投石探路。 有没有提取或转换成农历的函数?现在有农历节假日。打算由公历转换提取。

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2008/9/6 19:25:00 [只看该作者]

没有提供。


 回到顶部
帅哥哟,离线,有人找我吗?
xipies
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:161 积分:1172 威望:0 精华:0 注册:2008/8/31 20:56:00
  发帖心情 Post By:2008/9/6 19:31:00 [只看该作者]

我也需要,很需要,只是还没到提出的时候,现在搭个车,顶楼主一下

 回到顶部
帅哥哟,离线,有人找我吗?
擎天柱
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:542 积分:4243 威望:0 精华:4 注册:2008/9/1 8:27:00
  发帖心情 Post By:2008/9/6 19:37:00 [只看该作者]

遗憾啊!我要做个工资系统就有点麻烦了!

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2008/9/6 19:47:00 [只看该作者]

我们会考虑加上这个函数de。

 回到顶部
帅哥哟,离线,有人找我吗?
擎天柱
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:542 积分:4243 威望:0 精华:4 注册:2008/9/1 8:27:00
  发帖心情 Post By:2008/9/6 19:49:00 [只看该作者]

网上找了个ASP代码,哪位行家动手写成FOXTABLE的公式也不错 阳历转阴历代码(公历转农历代码) 此代码为ASP代码,可以把当前日期或者指定阳历日期(必须为1921-2-8以后)转换为对应阴历月和日,此代码不是原创,是经过修改《纯ASP代码之公历转农历实现(含属相)》而得到的,感谢原作者提供代码分享 注:阴历没有显示年,这个简单,判断一下阴历的月大于阳历的月的话就是阳历年份的前一年,不然就和阳历同年 1.建立一个asp页面,命名为yy.asp,保存阳历转阴历函数方便调用,完整代码如下: <% '----------------------------------------------------------阳历转阴历 Class ChinaDay Dim MonthAdd(11), NongliData(99) Dim arrDayName(30), arrMonName(12) Dim curTime, curYear, curMonth, curDay Dim i, m, n, k, isEnd, bit, TheDate '初始化数据 Sub Class_Initialize() '农历日期名 arrDayName(0) = "*" arrDayName(1) = "1" arrDayName(2) = "2" arrDayName(3) = "3" arrDayName(4) = "4" arrDayName(5) = "5" arrDayName(6) = "6" arrDayName(7) = "7" arrDayName(8) = "8" arrDayName(9) = "9" arrDayName(10) = "10" arrDayName(11) = "11" arrDayName(12) = "12" arrDayName(13) = "13" arrDayName(14) = "14" arrDayName(15) = "15" arrDayName(16) = "16" arrDayName(17) = "17" arrDayName(18) = "18" arrDayName(19) = "19" arrDayName(20) = "20" arrDayName(21) = "21" arrDayName(22) = "22" arrDayName(23) = "23" arrDayName(24) = "24" arrDayName(25) = "25" arrDayName(26) = "26" arrDayName(27) = "27" arrDayName(28) = "28" arrDayName(29) = "29" arrDayName(30) = "30" '农历月份名 arrMonName(0) = "*" arrMonName(1) = "1" arrMonName(2) = "2" arrMonName(3) = "3" arrMonName(4) = "4" arrMonName(5) = "5" arrMonName(6) = "6" arrMonName(7) = "7" arrMonName(8) = "8" arrMonName(9) = "9" arrMonName(10) = "10" arrMonName(11) = "11" arrMonName(12) = "12" '--------------------------------------------------------- '公历每月前面的天数 MonthAdd(0) = 0 MonthAdd(1) = 31 MonthAdd(2) = 59 MonthAdd(3) = 90 MonthAdd(4) = 120 MonthAdd(5) = 151 MonthAdd(6) = 181 MonthAdd(7) = 212 MonthAdd(8) = 243 MonthAdd(9) = 273 MonthAdd(10) = 304 MonthAdd(11) = 334 '农历数据 NongliData(0) = 2635 NongliData(1) = 333387 NongliData(2) = 1701 NongliData(3) = 1748 NongliData(4) = 267701 NongliData(5) = 694 NongliData(6) = 2391 NongliData(7) = 133423 NongliData(8) = 1175 NongliData(9) = 396438 NongliData(10) = 3402 NongliData(11) = 3749 NongliData(12) = 331177 NongliData(13) = 1453 NongliData(14) = 694 NongliData(15) = 201326 NongliData(16) = 2350 NongliData(17) = 465197 NongliData(18) = 3221 NongliData(19) = 3402 NongliData(20) = 400202 NongliData(21) = 2901 NongliData(22) = 1386 NongliData(23) = 267611 NongliData(24) = 605 NongliData(25) = 2349 NongliData(26) = 137515 NongliData(27) = 2709 NongliData(28) = 464533 NongliData(29) = 1738 NongliData(30) = 2901 NongliData(31) = 330421 NongliData(32) = 1242 NongliData(33) = 2651 NongliData(34) = 199255 NongliData(35) = 1323 NongliData(36) = 529706 NongliData(37) = 3733 NongliData(38) = 1706 NongliData(39) = 398762 NongliData(40) = 2741 NongliData(41) = 1206 NongliData(42) = 267438 NongliData(43) = 2647 NongliData(44) = 1318 NongliData(45) = 204070 NongliData(46) = 3477 NongliData(47) = 461653 NongliData(48) = 1386 NongliData(49) = 2413 NongliData(50) = 330077 NongliData(51) = 1197 NongliData(52) = 2637 NongliData(53) = 268877 NongliData(54) = 3365 NongliData(55) = 531109 NongliData(56) = 2900 NongliData(57) = 2922 NongliData(58) = 398042 NongliData(59) = 2395 NongliData(60) = 1179 NongliData(61) = 267415 NongliData(62) = 2635 NongliData(63) = 661067 NongliData(64) = 1701 NongliData(65) = 1748 NongliData(66) = 398772 NongliData(67) = 2742 NongliData(68) = 2391 NongliData(69) = 330031 NongliData(70) = 1175 NongliData(71) = 1611 NongliData(72) = 200010 NongliData(73) = 3749 NongliData(74) = 527717 NongliData(75) = 1452 NongliData(76) = 2742 NongliData(77) = 332397 NongliData(78) = 2350 NongliData(79) = 3222 NongliData(80) = 268949 NongliData(81) = 3402 NongliData(82) = 3493 NongliData(83) = 133973 NongliData(84) = 1386 NongliData(85) = 464219 NongliData(86) = 605 NongliData(87) = 2349 NongliData(88) = 334123 NongliData(89) = 2709 NongliData(90) = 2890 NongliData(91) = 267946 NongliData(92) = 2773 NongliData(93) = 592565 NongliData(94) = 1210 NongliData(95) = 2651 NongliData(96) = 395863 NongliData(97) = 1323 NongliData(98) = 2707 NongliData(99) = 265877 End Sub '############################################################ ' inDay 输入日期,如果不输入则默认为当前日期 ' sDay 中文格式日期 ' sChinaDay 农历日 '############################################################ Public Function Action(inDay,sDay,sChinaDay) '转换要转换的日期 If inDay="" Or Not IsDate(inDay) Then '获取当前系统时间 curTime = Now() Else curTime = CDate(inDay) End If If Datediff("d",curTime,Cdate("1921-2-8"))>0 Then Exit Function End If '生成当前公历年、月、日 ==> sDay curYear = Year(curTime) curMonth = Month(curTime) curDay = Day(curTime) sDay = curYear&"年" If (curMonth < 10) Then sDay = sDay&"0"&curMonth&"月" Else sDay = sDay&curMonth&"月" End If If (curDay < 10) Then sDay = sDay&"0"&curDay&"日" Else sDay = sDay&curDay&"日" End If '计算到初始时间1921年2月8日的天数:1921-2-8(正月初一) TheDate = (curYear - 1921) * 365 + Int((curYear - 1921) / 4) + curDay + MonthAdd(curMonth - 1) - 38 If ((curYear Mod 4) = 0 AND curMonth > 2) Then TheDate = TheDate + 1 End If '计算农历天干、地支、月、日 isEnd = 0 m = 0 '------------------------------------ Do If (NongliData(m) < 4095) Then k = 11 Else k = 12 End if n = k '------------------------------------ Do If (n < 0) Then Exit Do End If '获取NongliData(m)的第n个二进制位的值 bit = NongliData(m) For i = 1 To n Step 1 bit = Int(bit / 2) Next bit = bit Mod 2 If (TheDate <= 29 + bit) Then isEnd = 1 Exit Do End If TheDate = TheDate - 29 - bit n = n - 1 Loop '------------------------------------ If (isEnd = 1) Then Exit Do End If m = m + 1 Loop '------------------------------------ curYear = 1921 + m curMonth = k - n + 1 curDay = TheDate If (k = 12) Then If (curMonth = (Int(NongliData(m) / 65536) + 1)) Then curMonth = 1 - curMonth ElseIf (curMonth > (Int(NongliData(m) / 65536) + 1)) Then curMonth = curMonth - 1 End if End If '生成农历月、日 ==> NongliDayStr If (curMonth < 1) Then sChinaDay = "闰"&arrMonName(-1 * curMonth) Else sChinaDay = arrMonName(curMonth) End If sChinaDay = sChinaDay&"-" sChinaDay = sChinaDay & arrDayName(curDay) End Function End Class '----------------------------------------------------------阳历转阴历结束 %> 2.先用当前日期调用 文件名dq.asp ,完整代码如下: <!--#include file="yy.asp" --> 当前日期为 <%=date()%>
<% Set zhChinaDay = New ChinaDay Call zhChinaDay.Action(ass,sDay,sChinaDay) Set zhChinaDay = Nothing %> 对应农历为 <%=sChinaDay%> 3.指定日期转换 zd.asp ,完整代码如下: <!--#include file="yy.asp" --> <% new_date = request.Form("now_date") Set zhChinaDay = New ChinaDay Call zhChinaDay.Action(new_date,sDay,sChinaDay) Set zhChinaDay = Nothing %> <% if (new_date = "") then %> 当前日期为 <%=date%>,对应阴历为<%=sChinaDay%> <%else%> 你输入的日期为 <%=new_date%>,对应阴历为<%=sChinaDay%> <% end if %>
输入要转换的日期: 格式为"1999-9-9"

 回到顶部
帅哥哟,离线,有人找我吗?
擎天柱
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:542 积分:4243 威望:0 精华:4 注册:2008/9/1 8:27:00
  发帖心情 Post By:2008/9/6 19:53:00 [只看该作者]

格式不对,调一下 阳历转阴历代码(公历转农历代码) 此代码为ASP代码,可以把当前日期或者指定阳历日期(必须为1921-2-8以后)转换为对应阴历月和日,此代码不是原创,是经过修改《纯ASP代码之公历转农历实现(含属相)》而得到的,感谢原作者提供代码分享 注:阴历没有显示年,这个简单,判断一下阴历的月大于阳历的月的话就是阳历年份的前一年,不然就和阳历同年 1.建立一个asp页面,命名为yy.asp,保存阳历转阴历函数方便调用,完整代码如下: <% '----------------------------------------------------------阳历转阴历 Class ChinaDay Dim MonthAdd(11), NongliData(99) Dim arrDayName(30), arrMonName(12) Dim curTime, curYear, curMonth, curDay Dim i, m, n, k, isEnd, bit, TheDate '初始化数据 Sub Class_Initialize() '农历日期名 arrDayName(0) = "*" arrDayName(1) = "1" arrDayName(2) = "2" arrDayName(3) = "3" arrDayName(4) = "4" arrDayName(5) = "5" arrDayName(6) = "6" arrDayName(7) = "7" arrDayName(8) = "8" arrDayName(9) = "9" arrDayName(10) = "10" arrDayName(11) = "11" arrDayName(12) = "12" arrDayName(13) = "13" arrDayName(14) = "14" arrDayName(15) = "15" arrDayName(16) = "16" arrDayName(17) = "17" arrDayName(18) = "18" arrDayName(19) = "19" arrDayName(20) = "20" arrDayName(21) = "21" arrDayName(22) = "22" arrDayName(23) = "23" arrDayName(24) = "24" arrDayName(25) = "25" arrDayName(26) = "26" arrDayName(27) = "27" arrDayName(28) = "28" arrDayName(29) = "29" arrDayName(30) = "30" '农历月份名 arrMonName(0) = "*" arrMonName(1) = "1" arrMonName(2) = "2" arrMonName(3) = "3" arrMonName(4) = "4" arrMonName(5) = "5" arrMonName(6) = "6" arrMonName(7) = "7" arrMonName(8) = "8" arrMonName(9) = "9" arrMonName(10) = "10" arrMonName(11) = "11" arrMonName(12) = "12" '--------------------------------------------------------- '公历每月前面的天数 MonthAdd(0) = 0 MonthAdd(1) = 31 MonthAdd(2) = 59 MonthAdd(3) = 90 MonthAdd(4) = 120 MonthAdd(5) = 151 MonthAdd(6) = 181 MonthAdd(7) = 212 MonthAdd(8) = 243 MonthAdd(9) = 273 MonthAdd(10) = 304 MonthAdd(11) = 334 '农历数据 NongliData(0) = 2635 NongliData(1) = 333387 NongliData(2) = 1701 NongliData(3) = 1748 NongliData(4) = 267701 NongliData(5) = 694 NongliData(6) = 2391 NongliData(7) = 133423 NongliData(8) = 1175 NongliData(9) = 396438 NongliData(10) = 3402 NongliData(11) = 3749 NongliData(12) = 331177 NongliData(13) = 1453 NongliData(14) = 694 NongliData(15) = 201326 NongliData(16) = 2350 NongliData(17) = 465197 NongliData(18) = 3221 NongliData(19) = 3402 NongliData(20) = 400202 NongliData(21) = 2901 NongliData(22) = 1386 NongliData(23) = 267611 NongliData(24) = 605 NongliData(25) = 2349 NongliData(26) = 137515 NongliData(27) = 2709 NongliData(28) = 464533 NongliData(29) = 1738 NongliData(30) = 2901 NongliData(31) = 330421 NongliData(32) = 1242 NongliData(33) = 2651 NongliData(34) = 199255 NongliData(35) = 1323 NongliData(36) = 529706 NongliData(37) = 3733 NongliData(38) = 1706 NongliData(39) = 398762 NongliData(40) = 2741 NongliData(41) = 1206 NongliData(42) = 267438 NongliData(43) = 2647 NongliData(44) = 1318 NongliData(45) = 204070 NongliData(46) = 3477 NongliData(47) = 461653 NongliData(48) = 1386 NongliData(49) = 2413 NongliData(50) = 330077 NongliData(51) = 1197 NongliData(52) = 2637 NongliData(53) = 268877 NongliData(54) = 3365 NongliData(55) = 531109 NongliData(56) = 2900 NongliData(57) = 2922 NongliData(58) = 398042 NongliData(59) = 2395 NongliData(60) = 1179 NongliData(61) = 267415 NongliData(62) = 2635 NongliData(63) = 661067 NongliData(64) = 1701 NongliData(65) = 1748 NongliData(66) = 398772 NongliData(67) = 2742 NongliData(68) = 2391 NongliData(69) = 330031 NongliData(70) = 1175 NongliData(71) = 1611 NongliData(72) = 200010 NongliData(73) = 3749 NongliData(74) = 527717 NongliData(75) = 1452 NongliData(76) = 2742 NongliData(77) = 332397 NongliData(78) = 2350 NongliData(79) = 3222 NongliData(80) = 268949 NongliData(81) = 3402 NongliData(82) = 3493 NongliData(83) = 133973 NongliData(84) = 1386 NongliData(85) = 464219 NongliData(86) = 605 NongliData(87) = 2349 NongliData(88) = 334123 NongliData(89) = 2709 NongliData(90) = 2890 NongliData(91) = 267946 NongliData(92) = 2773 NongliData(93) = 592565 NongliData(94) = 1210 NongliData(95) = 2651 NongliData(96) = 395863 NongliData(97) = 1323 NongliData(98) = 2707 NongliData(99) = 265877 End Sub '############################################################ ' inDay 输入日期,如果不输入则默认为当前日期 ' sDay 中文格式日期 ' sChinaDay 农历日 '############################################################ Public Function Action(inDay,sDay,sChinaDay) '转换要转换的日期 If inDay="" Or Not IsDate(inDay) Then '获取当前系统时间 curTime = Now() Else curTime = CDate(inDay) End If If Datediff("d",curTime,Cdate("1921-2-8"))>0 Then Exit Function End If '生成当前公历年、月、日 ==> sDay curYear = Year(curTime) curMonth = Month(curTime) curDay = Day(curTime) sDay = curYear&"年" If (curMonth < 10) Then sDay = sDay&"0"&curMonth&"月" Else sDay = sDay&curMonth&"月" End If If (curDay < 10) Then sDay = sDay&"0"&curDay&"日" Else sDay = sDay&curDay&"日" End If '计算到初始时间1921年2月8日的天数:1921-2-8(正月初一) TheDate = (curYear - 1921) * 365 + Int((curYear - 1921) / 4) + curDay + MonthAdd(curMonth - 1) - 38 If ((curYear Mod 4) = 0 AND curMonth > 2) Then TheDate = TheDate + 1 End If '计算农历天干、地支、月、日 isEnd = 0 m = 0 '------------------------------------ Do If (NongliData(m) < 4095) Then k = 11 Else k = 12 End if n = k '------------------------------------ Do If (n < 0) Then Exit Do End If '获取NongliData(m)的第n个二进制位的值 bit = NongliData(m) For i = 1 To n Step 1 bit = Int(bit / 2) Next bit = bit Mod 2 If (TheDate <= 29 + bit) Then isEnd = 1 Exit Do End If TheDate = TheDate - 29 - bit n = n - 1 Loop '------------------------------------ If (isEnd = 1) Then Exit Do End If m = m + 1 Loop '------------------------------------ curYear = 1921 + m curMonth = k - n + 1 curDay = TheDate If (k = 12) Then If (curMonth = (Int(NongliData(m) / 65536) + 1)) Then curMonth = 1 - curMonth ElseIf (curMonth > (Int(NongliData(m) / 65536) + 1)) Then curMonth = curMonth - 1 End if End If '生成农历月、日 ==> NongliDayStr If (curMonth < 1) Then sChinaDay = "闰"&arrMonName(-1 * curMonth) Else sChinaDay = arrMonName(curMonth) End If sChinaDay = sChinaDay&"-" sChinaDay = sChinaDay & arrDayName(curDay) End Function End Class '----------------------------------------------------------阳历转阴历结束 %> 2.先用当前日期调用 文件名dq.asp ,完整代码如下: <!--#include file="yy.asp" --> 当前日期为 <%=date()%>
<% Set zhChinaDay = New ChinaDay Call zhChinaDay.Action(ass,sDay,sChinaDay) Set zhChinaDay = Nothing %> 对应农历为 <%=sChinaDay%> 3.指定日期转换 zd.asp ,完整代码如下: <!--#include file="yy.asp" --> <% new_date = request.Form("now_date") Set zhChinaDay = New ChinaDay Call zhChinaDay.Action(new_date,sDay,sChinaDay) Set zhChinaDay = Nothing %> <% if (new_date = "") then %> 当前日期为 <%=date%>,对应阴历为<%=sChinaDay%> <%else%> 你输入的日期为 <%=new_date%>,对应阴历为<%=sChinaDay%> <% end if %>
输入要转换的日期: 格式为"1999-9-9"

 回到顶部
帅哥哟,离线,有人找我吗?
xipies
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:161 积分:1172 威望:0 精华:0 注册:2008/8/31 20:56:00
  发帖心情 Post By:2008/9/6 19:57:00 [只看该作者]

以下是引用狐狸爸爸在2008-9-6 19:47:00的发言:
我们会考虑加上这个函数de。


感谢老六,易表里就盼了很长时间了


 回到顶部
帅哥哟,离线,有人找我吗?
擎天柱
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:542 积分:4243 威望:0 精华:4 注册:2008/9/1 8:27:00
  发帖心情 Post By:2008/9/6 20:09:00 [只看该作者]

有说法:转阴历无计算公式(有点棘手了) 以下引自网上: 如何转换阴阳历?   很多人都一直在找换阴阳历的公式。我也尝试过。曾读过「高平子」天文前辈所着「学历散论」了解古历的变更和阴阳历的缺陷。才知道由於月球转动的不稳定不规则,确定无公式可寻。这也是古代中国每百年必改历的原因。 阴历最大的问题是在如何置闰。好像不难,因为阴历基本法则如下:  * 月朔日即是初一  * 月以中气得名  * 以包含雨水中气月为正月,即是「寅」月  * 月无中气者为闰月,以前月同名   如果,日月转动循还有规则的话, 推演一套阴阳历转换的公式并不难。问题在有时一个太阴月比一个太阳月还要长。如此一个太阴月就有可能包括两个中气。此双中气月後的阴历月名就全部乱掉了,直到下一个「假」闰月後才调整过来。   一般人接触到的阴阳历是民用历法,它是政府颁令的以东经120度计算的历法或称中原标准时间或北京时。如果,我们用不同时区、不同经度为子午线来重新计算阴阳历,民用历法的置闰法则出了很大的问题。不同时区的闰月可能落在不同月。换言之,在一百年内,任何两个时区的闰月顺序模式是会不相同的。   高平子前辈书中提到了「历理置闰法」。如果应用历理置闰法到不同时区,则所有不同时区的闰月都落在相同月。如此不同时区、不同经度的阴阳历置闰之问题就消失了。民用置闰和历理置闰的不同是:   * 在民用置闰,如果月朔日和中气同一天,则该阴历月包含那个中气。   * 在历理置闰,如果月朔日和中气同一天,月朔日时间必须在中气时间之前,则该阴历月才包含那个中气。   简言之,民用置闰比较月朔和中气日期;历理置闰比较月朔和中气日期、时、分、秒。由此可知,没有精确的太阳和月亮的时间数字,阴历的闰月可能会排错了。   基於这些理由,我着手寻找天文公式计算精确的太阳和月亮在纬度的时间。当年没有网路,发了大半年於美国南加州各大图书馆及大学,找寻答案。1993年出版了「中美天文万年历」一书。书中精确的天文日月时间只从1900到2010年。因恐2011後时间误差超过一分钟,不够精确,不敢印出。今年2002从网路资讯,确定太阳和月亮时间的精确度後,百忙中重新整理资料,提供给需要阴阳历转换公式的朋友。   整理出的太阳和月亮时间数字是从西元1年到2246年。有历理和中国民用两套历法。数字内容清清楚楚的看出民用历法的敝端。例如,从西元1600年到2246年,民用历法双中气的阴历月有22个,历理历法只有5个。民用历法甚至在2033、2128和2242年中,三个月之间居然跑出两个双中气;换言之,三个月中多出两个「假」闰月。前後12个阴历月中有三个闰月,闰月的去留造成许多学者的讨论和困恼。历理历法在此三年中,却没有发现到双中气阴历月。闰月的去留只要把双中气月後的「假」闰月取消,则历理历法近乎於完美。   由此可知,民用历法问题很大,应该废除。上次阴阳历重大改历在1645年,已经超过350年。随着天文科学的进步,中国阴阳历应该使用较精确的历理历法。免得後代子孙再浪费时间讨论置闰去留的问题。   阴阳历应用在八字算命、紫微斗数、农民历、遁甲历最多。很多人不知道排八字只用阳历而不用阴历。发了许多时间在研究阴阳历的转换。其实八字只使用太阳中节气,和月亮没有任何关系。紫微斗数则需要阴历日期去排命盘。美国时区的阴历日期有一半和中国时区的阴历日期差一天,因为时差超过12小时;初一就可能在不同日之故。有位在加拿大职业算命的朋友,精通八字和紫微斗数,研究其女命盘。八字论父母,合情合理。斗数父母宫,看不出自己影子。後来,在中美天文万年历一书发现了「差一天」之解答。   曾有一位退休博士用了近三十年找寻阴阳历的公式,问遍两岸各大天文台,得不到答案,直到发现中美天文万年历一书。最後,希望我重新整理的中国阴阳历的天文数字和原始程式,能给有求知欲於阴阳历转换方法的读友一个答案,以免得不到答案而遗憾终身。 中国阴阳历的天文数字和原始程式用简单英文阐述, 请从下述 Chinese Lunar Calendar 进入(http://www.chinesefortunecalendar.com/clc/Default.htm)。 --------------------------------------------------------------------------------高平子 Kao Ping Tse”1888-1970〔是中国近代最有成就的天文学者之一。他没有接受正规的天文教育。凭着对天文的酷爱,自己研读天文书籍。因为他对天文的贡献,在他的百年冥诞,月球的一个环形月坑以他的名字为名。位置在月球东经87.6度,南纬6.7度, 直径34公里,为国争光。

 回到顶部
帅哥哟,离线,有人找我吗?
lxl
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:858 积分:6071 威望:0 精华:19 注册:2008/9/1 9:13:00
  发帖心情 Post By:2008/9/6 20:10:00 [只看该作者]

.net 里面有一个 ChineseLunisolarCalendar 类 
可以很容易实现


 回到顶部
总数 16 1 2 下一页