回覆列表
  • 1 # 風吹向秋風清天藍

    optionexplicit

    dimweekname(7),monthadd(11),nonglidata(99),tiangan(9),dizhi(11),shuxiang(11),dayname(30),monname(12)

    dimcurtime,curyear,curmonth,curday,curweekday

    dimgonglistr,weekdaystr,nonglistr,nonglidaystr

    dimi,m,n,k,isend,bit,thedate

    dimyear,month,day,grid,grid_date

    subdatetest()"這是轉換樣例

    debug.printcalendar("2011-8-15")

    endsub

    functioncalendar(grid)"轉換函式

    grid_date=grid

    year=mid(grid_date,1,4)

    month=mid(grid_date,6,1)

    day=mid(grid_date,8,2)

    "星期名

    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

    curmonth=month

    curday=day

    gonglistr=curyear&"年"

    if(curmonth

    gonglistr=gonglistr&"0"&curmonth&"月"

    else

    gonglistr=gonglistr&curmonth&"月"

    endif

    if(curday

    gonglistr=gonglistr&"0"&curday&"日"

    else

    gonglistr=gonglistr&curday&"日"

    endif

    "生成當前公曆星期==>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((curyearmod4)=0andcurmonth>2)then

    thedate=thedate+1

    endif

    "計算農曆天干、地支、月、日

    isend=0

    m=0

    do

    if(nonglidata(m)

    k=11

    else

    k=12

    endif

    n=k

    do

    if(n

    exitdo

    endif

    "獲取nonglidata(m)的第n個二進位制位的值

    bit=nonglidata(m)

    fori=1tonstep1

    bit=int(bit/2)

    next

    bit=bitmod2

    if(thedate

    isend=1

    exitdo

    endif

    thedate=thedate-29-bit

    n=n-1

    loop

    if(isend=1)then

    exitdo

    endif

    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

    endif

    endif

    "生成農曆天干、地支、屬相==>nonglistr

    nonglistr="農曆"&tiangan(((curyear-4)mod60)mod10)&dizhi(((curyear-4)mod60)mod12)&"年"

    nonglistr=nonglistr&"("&shuxiang(((curyear-4)mod60)mod12)&""

    "生成農曆月、日==>nonglidaystr

    if(curmonth

    nonglidaystr="閏"&monname(-1*curmonth)

    else

    nonglidaystr=monname(curmonth)

    endif

    nonglidaystr=nonglidaystr&"月"

    nonglidaystr=nonglidaystr&dayname(curday)

    calendar=nonglistr&nonglidaystr&")"

    endfunction

  • 中秋節和大豐收的關聯?
  • 基層建設連隊存在的問題和矛盾?