农历中最复杂的是节气。如果我们到网上查一下万年历,则会很轻松一查到JavaScript
的万年历。其中,就有个推节气日期的代码:
var sTermInfo = new Array(0,21208,42467,63836,85337,107014,128867,150921,173
149,195551,218072,240693,263343,285989,308563,331033,353350,375494,397447,41
9210,440795,462224,483532,504758);
//===== 某年的第n个节气为几日(从0小寒起算)
function sTerm(y,n) {
var offDate = new Date( ( 31556925974.7*(y-1900) + sTermInfo[n]*60000 )
+ Date.UTC(1900,0,6,2,5) );
return(offDate.getUTCDate());
}
这段代码翻译成VB则是:
Public Function GetiTermDay(ByVal CurUnYear As Integer, ByVal iTerm As Integ
er) As Integer
Dim offDate As Double
Dim vTermInfo As Variant
'一个节气年的毫秒长度
Const sTermYearLen As Double = 31556925974.7