可显示农历的VBS+JS代码:

显示农历的VBS代码:

< script language = vbscript >
Function  nl()
' 获取当前系统时间
curTime  =   Now ()
Dim  WeekName( 7 ), MonthAdd( 11 ), NongliData( 99 ), TianGan( 9 ), DiZhi( 11 ), ShuXiang( 11 ), DayName( 30 ), MonName( 12 )
' 星期名
WeekName( 0 =   "  *  "
WeekName(
1 =   " 星期日 "
WeekName(
2 =   " 星期一 "
WeekName(
3 =   " 星期二 "
WeekName(
4 =   " 星期三 "
WeekName(
5 =   " 星期四 "
WeekName(
6 =   " 星期五 "
WeekName(
7 =   " 星期六 "

' 天干名称
TianGan( 0 =   " "
TianGan(
1 =   " "
TianGan(
2 =   " "
TianGan(
3 =   " "
TianGan(
4 =   " "
TianGan(
5 =   " "
TianGan(
6 =   " "
TianGan(
7 =   " "
TianGan(
8 =   " "
TianGan(
9 =   " "

' 地支名称
DiZhi( 0 =   " "
DiZhi(
1 =   " "
DiZhi(
2 =   " "
DiZhi(
3 =   " "
DiZhi(
4 =   " "
DiZhi(
5 =   " "
DiZhi(
6 =   " "
DiZhi(
7 =   " "
DiZhi(
8 =   " "
DiZhi(
9 =   " "
DiZhi(
10 =   " "
DiZhi(
11 =   " "
' 属相名称
ShuXiang( 0 =   " "
ShuXiang(
1 =   " "
ShuXiang(
2 =   " "
ShuXiang(
3 =   " "
ShuXiang(
4 =   " "
ShuXiang(
5 =   " "
ShuXiang(
6 =   " "
ShuXiang(
7 =   " "
ShuXiang(
8 =   " "
ShuXiang(
9 =   " "
ShuXiang(
10 =   " "
ShuXiang(
11 =   " "
' 农历日期名
DayName( 0 =   " * "
DayName(
1 =   " 初一 "
DayName(
2 =   " 初二 "
DayName(
3 =   " 初三 "
DayName(
4 =   " 初四 "
DayName(
5 =   " 初五 "
DayName(
6 =   " 初六 "
DayName(
7 =   " 初七 "
DayName(
8 =   " 初八 "
DayName(
9 =   " 初九 "
DayName(
10 =   " 初十 "
DayName(
11 =   " 十一 "
DayName(
12 =   " 十二 "
DayName(
13 =   " 十三 "
DayName(
14 =   " 十四 "
DayName(
15 =   " 十五 "
DayName(
16 =   " 十六 "
DayName(
17 =   " 十七 "
DayName(
18 =   " 十八 "
DayName(
19 =   " 十九 "
DayName(
20 =   " 二十 "
DayName(
21 =   " 廿一 "
DayName(
22 =   " 廿二 "
DayName(
23 =   " 廿三 "
DayName(
24 =   " 廿四 "
DayName(
25 =   " 廿五 "
DayName(
26 =   " 廿六 "
DayName(
27 =   " 廿七 "
DayName(
28 =   " 廿八 "
DayName(
29 =   " 廿九 "
DayName(
30 =   " 三十 "
' 农历月份名
MonName( 0 =   " * "
MonName(
1 =   " "
MonName(
2 =   " "
MonName(
3 =   " "
MonName(
4 =   " "
MonName(
5 =   " "
MonName(
6 =   " "
MonName(
7 =   " "
MonName(
8 =   " "
MonName(
9 =   " "
MonName(
10 =   " "
MonName(
11 =   " 十一 "
MonName(
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
' 生成当前公历年、月、日 ==> GongliStr
curYear  =   Year (curTime)
curMonth 
=   Month (curTime)
curDay 
=   Day (curTime)
GongliStr 
=  curYear  &   " "
If  (curMonth  <   10 Then
    GongliStr 
=  GongliStr  &   " 0 "   &  curMonth  &   " "
Else
    GongliStr 
=  GongliStr  &  curMonth  &   " "
End   If
If  (curDay  <   10 Then
    GongliStr 
=  GongliStr  &   " 0 "   &  curDay  &   " "
Else
    GongliStr 
=  GongliStr  &  curDay  &   " "
End   If
' 生成当前公历星期 ==> WeekdayStr
curWeekday  =   Weekday (curTime)
WeekdayStr 
=  WeekName(curWeekday)
' 计算到初始时间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
=   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
' 生成农历天干、地支、属相 ==> NongliStr
NongliStr  =   " 农历 "   &  TianGan(((curYear  -   4 Mod   60 Mod   10 &  DiZhi(((curYear  -   4 Mod   60 Mod   12 &   " "
NongliStr 
=  NongliStr  &   " ( "   &  ShuXiang(((curYear  -   4 Mod   60 Mod   12 &   " ) "
' 生成农历月、日 ==> NongliDayStr
If  (curMonth  <   1 Then
    NongliDayStr 
=   " "   &  MonName( - 1   *  curMonth)
Else
    NongliDayStr 
=  MonName(curMonth)
End   If
NongliDayStr 
=  NongliDayStr  &   " "
NongliDayStr 
=  NongliDayStr  &  DayName(curDay)
nl 
=  NongliStr  &  NongliDayStr
End Function
msgbox  nl
</ script >
 

阴历的JS代码:

< script language = " JavaScript " >
<!--
var  bsYear;  
var  bsDate;  
var  bsWeek;  
var  arrLen = 8 ;     // 数组长度
var  sValue = 0 ;     // 当年的秒数
var  dayiy = 0 ;     // 当年第几天
var  miy = 0 ;     // 月份的下标
var  iyear = 0 ;     // 年份标记
var  dayim = 0 ;     // 当月第几天
var  spd = 86400 ;     // 每天的秒数

var  year1999 = " 30;29;29;30;29;29;30;29;30;30;30;29 " ;     // 354
var  year2000 = " 30;30;29;29;30;29;29;30;29;30;30;29 " ;     // 354
var  year2001 = " 30;30;29;30;29;30;29;29;30;29;30;29;30 " ;     // 384
var  year2002 = " 30;30;29;30;29;30;29;29;30;29;30;29 " ;     // 354
var  year2003 = " 30;30;29;30;30;29;30;29;29;30;29;30 " ;     // 355
var  year2004 = " 29;30;29;30;30;29;30;29;30;29;30;29;30 " ;     // 384
var  year2005 = " 29;30;29;30;29;30;30;29;30;29;30;29 " ;     // 354
var  year2006 = " 30;29;30;29;30;30;29;29;30;30;29;29;30 " ;

var  month1999 = " 正月;二月;三月;四月;五月;六月;七月;八月;九月;十月;十一月;十二月 "
var  month2001 = " 正月;二月;三月;四月;闰四月;五月;六月;七月;八月;九月;十月;十一月;十二月 "
var  month2004 = " 正月;二月;闰二月;三月;四月;五月;六月;七月;八月;九月;十月;十一月;十二月 "
var  month2006 = " 正月;二月;三月;四月;五月;六月;七月;闰七月;八月;九月;十月;十一月;十二月 "
var  Dn = " 初一;初二;初三;初四;初五;初六;初七;初八;初九;初十;十一;十二;十三;十四;十五;十六;十七;十八;十九;二十;廿一;廿二;廿三;廿四;廿五;廿六;廿七;廿八;廿九;三十 " ;

var  Ys = new  Array(arrLen);
Ys[
0 ] = 919094400 ;Ys[ 1 ] = 949680000 ;Ys[ 2 ] = 980265600 ;
Ys[
3 ] = 1013443200 ;Ys[ 4 ] = 1044028800 ;Ys[ 5 ] = 1074700800 ;
Ys[
6 ] = 1107878400 ;Ys[ 7 ] = 1138464000 ;

var  Yn = new  Array(arrLen);    // 农历年的名称
Yn[ 0 ] = " 己卯年 " ;Yn[ 1 ] = " 庚辰年 " ;Yn[ 2 ] = " 辛巳年 " ;
Yn[
3 ] = " 壬午年 " ;Yn[ 4 ] = " 癸未年 " ;Yn[ 5 ] = " 甲申年 " ;
Yn[
6 ] = " 乙酉年 " ;Yn[ 7 ] = " 丙戌年 "
var  D = new  Date();
var  yy = D.getYear();
var  mm = D.getMonth() + 1 ;
var  dd = D.getDate();
var  ww = D.getDay();
if  (ww == 0 ) ww = " <font color=RED>星期日 " ;
if  (ww == 1 ) ww = " 星期一 " ;
if  (ww == 2 ) ww = " 星期二 " ;
if  (ww == 3 ) ww = " 星期三 " ;
if  (ww == 4 ) ww = " 星期四 " ;
if  (ww == 5 ) ww = " 星期五 " ;
if  (ww == 6 ) ww = " <font color=RED>星期六 " ;
ww
= ww;
var  ss = parseInt(D.getTime()  /   1000 );
if  (yy < 100 ) yy = " 19 " + yy;

for  (I = 0 ;I < arrLen;I ++ )
    
if  (ss >= Ys[I]) {
        iyear
=I;
        sValue
=ss-Ys[I];    //当年的秒数
        }

dayiy
= parseInt(sValue / spd) + 1 ;     // 当年的天数

var  dpm = year1999;
if  (iyear == 1 ) dpm = year2000;
if  (iyear == 2 ) dpm = year2001;
if  (iyear == 3 ) dpm = year2002;
if  (iyear == 4 ) dpm = year2003;
if  (iyear == 5 ) dpm = year2004;
if  (iyear == 6 ) dpm = year2005;
if  (iyear == 7 ) dpm = year2006;
dpm
= dpm.split( " ; " );

var  Mn = month1999;
if  (iyear == 2 ) Mn = month2001;
if  (iyear == 5 ) Mn = month2004;
if  (iyear == 7 ) Mn = month2006;
Mn
= Mn.split( " ; " );

var  Dn = " 初一;初二;初三;初四;初五;初六;初七;初八;初九;初十;十一;十二;十三;十四;十五;十六;十七;十八;十九;二十;廿一;廿二;廿三;廿四;廿五;廿六;廿七;廿八;廿九;三十 " ;
Dn
= Dn.split( " ; " );

dayim
= dayiy;

var  total = new  Array( 13 );
total[
0 ] = parseInt(dpm[ 0 ]);
for  (I = 1 ;I < dpm.length - 1 ;I ++ ) total[I] = parseInt(dpm[I]) + total[I - 1 ];
for  (I = dpm.length - 1 ;I > 0 ;I -- )
    
if  (dayim > total[I - 1 ]) {
        dayim
=dayim-total[I-1];
        miy
=I;
        }

bsWeek
= ww;
bsDate
= yy + " " + mm + " " ;
bsDate2
= dd;
bsYear
= " 农历 " + Yn[iyear];
bsYear2
= Mn[miy] + Dn[dayim - 1 ];
if  (ss >= Ys[ 7 ] || ss < Ys[ 0 ]) bsYear = Yn[ 7 ];
function  CAL() {
document.write(
"<table border='1' cellspacing='3' width='90' bordercolor='#000000' bgcolor='#FFFFFF' height='110' cellpadding='2'");
document.write(
"<tr><td align='center'><b><font color=#008040>"+bsDate+"</font><br><font face='Arial' size='6' color=#FF8040>"+bsDate2+"</font><br><font color=#008040><span style='FONT-SIZE: 10.5pt'>");
document.write(bsWeek
+"</span><br>"+"<br></b><font color=#9B4E00>");
document.write(bsYear
+"<br>"+bsYear2+"</td></tr></table>");
}

// -->
</ script >
          
< script language = " javascript " > CAL(); </ script >
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值