<%
'옵션 명시적
'************************************************
' 클래스 이름: ChinaDay
'목적:
' 입력된 날짜를 기준으로 날짜의 음력 줄기와 가지 및 연도의 별자리를 계산합니다.
' 용법:
'첫 번째 매개변수는 입력 매개변수입니다. 입력하지 않으면 기본값은 현재 날짜입니다.
'1921-2-8 이후 날짜만 계산하세요.
' ##---------------------------------- -##
'어두운 objChinaDay
' 희미한 sDay, sWeekDay, sChinaDay, sChinaYear,sChinaAni
' objChinaDay = New ChinaDay로 설정
' objChinaDay.Action("",sDay,sWeekDay,sChinaYear,sChinaDay,sChinaAni)를 호출합니다.
' 응답.쓰기 sDay&"<BR>"
' 응답.WeekDay&"<BR>" 쓰기
' 응답. sChinaYear&"<BR>" 쓰기
' 응답.쓰기 sChinaDay&"<BR>"
' 응답. sChinaAni&"<BR>" 쓰기
' ##---------------------------------- -##
' 수정자 : Babyt(Artest)
'메일: [email protected]
'환영합니다:
' http://blog.csdn.net/babyt/
' http://www.facesun.cn
' 작성일: 2005-2-20
' 저작권 : 이 코드는 원본이 아니며 2001년에 수집된 것입니다. 원본 작성자는 알 수 없습니다.
'라이센스:무료
'************************************************ * ***
수업중국날
Dim arrWeekName(7), MonthAdd(11), NongliData(99)
Dim arrTianGan(9), arrDiZhi(11), arrShuXiang(11), arrDayName(30), arrMonName(12)
희미한 curTime, curYear, curMonth, curDay, curWeekday
Dim i, m, n, k, isEnd, 비트, TheDate
'데이터 초기화
하위클래스_초기화()
'------------------------------------------------ - -
'표시 문자열 정의
'주 이름
arrWeekName(0) = "*"
arrWeekName(1) = "일요일"
arrWeekName(2) = "월요일"
arrWeekName(3) = "화요일"
arrWeekName(4) = "수요일"
arrWeekName(5) = "목요일"
arrWeekName(6) = "금요일"
arrWeekName(7) = "토요일"
'천상의 줄기 이름
arrTianGan(0) = "A"
arrTianGan(1) = "B"
arrTianGan(2) = "C"
arrTianGan(3) = "丁"
arrTianGan(4) = "오"
arrTianGan(5) = "자"
arrTianGan(6) = "수"
arrTianGan(7) = "신"
arrTianGan(8) = "嬣"
arrTianGan(9) = "발"
'지구의 지점 이름
arrDiZhi(0) = "자"
arrDiZhi(1) = "못생긴"
arrDiZhi(2) = "음"
arrDiZhi(3) = "卯"
arrDiZhi(4) = "금"
arrDiZhi(5) = "그림"
arrDiZhi(6) = "오후"
arrDiZhi(7) = "아님"
arrDiZhi(8) = "쉔"
arrDiZhi(9) = "당신"
arrDiZhi(10) = "戌"
arrDiZhi(11) = "해"
'조디악 이름
arrShuXiang(0) = "쥐"
arrShuXiang(1) = "소"
arrShuXiang(2) = "호랑이"
arrShuXiang(3) = "토끼"
arrShuXiang(4) = "龙"
arrShuXiang(5) = "뱀"
arrShuXiang(6) = "말"
arrShuXiang(7) = "양"
arrShuXiang(8) = "원숭이"
arrShuXiang(9) = "닭고기"
arrShuXiang(10) = "개"
arrShuXiang(11) = "돼지"
'음력 날짜 이름
arrDayName(0) = "*"
arrDayName(1) = "중학교 첫날"
arrDayName(2) = "중학교 둘째 날"
arrDayName(3) = "중학교 셋째 날"
arrDayName(4) = "넷째 날"
arrDayName(5) = "음력 5월 5일"
arrDayName(6) = "음력 6일"
arrDayName(7) = "일곱째 날"
arrDayName(8) = "음력 8일"
arrDayName(9) = "음력 9일"
arrDayName(10) = "음력 10일"
arrDayName(11) = "11"
arrDayName(12) = "12"
arrDayName(13) = "13"
arrDayName(14) = "14"
arrDayName(15) = "열다섯"
arrDayName(16) = "16"
arrDayName(17) = "열일곱"
arrDayName(18) = "18"
arrDayName(19) = "19"
arrDayName(20) = "20"
arrDayName(21) = "21"
arrDayName(22) = "스물둘"
arrDayName(23) = "스물셋"
arrDayName(24) = "스물넷"
arrDayName(25) = "25"
arrDayName(26) = "스물여섯"
arrDayName(27) = "스물일곱"
arrDayName(28) = "스물여덟"
arrDayName(29) = "스물아홉"
arrDayName(30) = "30"
'음력 달 이름
arrMonName(0) = "*"
arrMonName(1) = "긍정적"
arrMonName(2) = "이"
arrMonName(3) = "삼"
arrMonName(4) = "4"
arrMonName(5) = "오"
arrMonName(6) = "입력"
arrMonName(7) = "일곱"
arrMonName(8) = "8"
arrMonName(9) = "九"
arrMonName(10) = "十"
arrMonName(11) = "11"
arrMonName(12) = "라"
'------------------------------------------------ - -------
'공차 데이터 정의
'그레고리력의 각 달 앞의 일수
월추가(0) = 0
월추가(1) = 31
월추가(2) = 59
월추가(3) = 90
월추가(4) = 120
월추가(5) = 151
월추가(6) = 181
월추가(7) = 212
월추가(8) = 243
월추가(9) = 273
월추가(10) = 304
월추가(11) = 334
'음력 데이터
농글리데이터(0) = 2635
농글리데이터(1) = 333387
농글리데이터(2) = 1701
농글리데이터(3) = 1748
농글리데이터(4) = 267701
농글리데이터(5) = 694
농글리데이터(6) = 2391
NongliData(7) = 133423
농글리데이터(8) = 1175
농글리데이터(9) = 396438
농글리데이터(10) = 3402
농글리데이터(11) = 3749
농글리데이터(12) = 331177
농글리데이터(13) = 1453
농글리데이터(14) = 694
농리데이터(15) = 201326
농글리데이터(16) = 2350
농글리데이터(17) = 465197
농글리데이터(18) = 3221
농글리데이터(19) = 3402
농리데이터(20) = 400202
농글리데이터(21) = 2901
농글리데이터(22) = 1386
농리데이터(23) = 267611
농글리데이터(24) = 605
농리데이터(25) = 2349
농글리데이터(26) = 137515
농글리데이터(27) = 2709
농리데이터(28) = 464533
농리데이터(29) = 1738
농리데이터(30) = 2901
농리데이터(31) = 330421
농글리데이터(32) = 1242
농글리데이터(33) = 2651
농리데이터(34) = 199255
농글리데이터(35) = 1323
농리데이터(36) = 529706
농글리데이터(37) = 3733
농글리데이터(38) = 1706
농리데이터(39) = 398762
농리데이터(40) = 2741
농글리데이터(41) = 1206
농리데이터(42) = 267438
농글리데이터(43) = 2647
농글리데이터(44) = 1318
농리데이터(45) = 204070
농글리데이터(46) = 3477
농리데이터(47) = 461653
농리데이터(48) = 1386
농글리데이터(49) = 2413
농리데이터(50) = 330077
농글리데이터(51) = 1197
농글리데이터(52) = 2637
농리데이터(53) = 268877
농글리데이터(54) = 3365
농리데이터(55) = 531109
농글리데이터(56) = 2900
농글리데이터(57) = 2922
농리데이터(58) = 398042
농글리데이터(59) = 2395
농리데이터(60) = 1179
농리데이터(61) = 267415
농글리데이터(62) = 2635
농리데이터(63) = 661067
농리데이터(64) = 1701
농글리데이터(65) = 1748
농리데이터(66) = 398772
농글리데이터(67) = 2742
농글리데이터(68) = 2391
농리데이터(69) = 330031
농글리데이터(70) = 1175
농글리데이터(71) = 1611
농리데이터(72) = 200010
농글리데이터(73) = 3749
농글리데이터(74) = 527717
농글리데이터(75) = 1452
농글리데이터(76) = 2742
농글리데이터(77) = 332397
농글리데이터(78) = 2350
농글리데이터(79) = 3222
농리데이터(80) = 268949
농글리데이터(81) = 3402
농리데이터(82) = 3493
농리데이터(83) = 133973
농글리데이터(84) = 1386
농리데이터(85) = 464219
농글리데이터(86) = 605
농글리데이터(87) = 2349
농리데이터(88) = 334123
농글리데이터(89) = 2709
농리데이터(90) = 2890
농리데이터(91) = 267946
농글리데이터(92) = 2773
농리데이터(93) = 592565
농글리데이터(94) = 1210
농글리데이터(95) = 2651
농리데이터(96) = 395863
농글리데이터(97) = 1323
농글리데이터(98) = 2707
농리데이터(99) = 265877
서브 끝
'########################################## ## #########
'메인 메소드 액션
' inDay 날짜를 입력하고, 입력하지 않으면 현재 날짜로 기본 설정됩니다.
'sDay 중국어 형식의 날짜
' sWeekDay 요일
' sChinaYear 음력 설날
' sChinaDay 음력의 날
' sChina애니 조디악 로그인
'########################################## ## #########
공개 함수 작업(inDay,sDay,sWeekDay,sChinaYear,sChinaDay,sChinaAni)
'변환할 날짜를 변환합니다.
inDay="" 또는 IsDate(inDay)가 아닌 경우
'현재 시스템 시간을 가져옵니다
curTime = 지금()
또 다른
curTime = CDate(inDay)
종료 조건
If Dateiff("d",curTime,Cdate("1921-2-8"))>0 그러면
종료 기능
종료 조건
'현재 그레고리력 연도, 월, 일 생성 ==> sDay
curYear = 연도(curTime)
curMonth = 월(curTime)
curDay = 일(curTime)
sDay = 현재연도&"연도"
(curMonth < 10)이면
sDay = sDay&"0"&curMonth&"월"
또 다른
sDay = sDay&curMonth&"월"
종료 조건
(curDay < 10)이면
sDay = sDay&"0"&curDay&"일"
또 다른
sDay = sDay&curDay&"일"
종료 조건
'현재 그레고리력의 주를 생성합니다 ==> sWeekDay
curWeekday = 평일(curTime)
sWeekDay = arrWeekName(curWeekday)
'1921년 2월 8일의 초기 시점까지의 일수를 계산하십시오: 1921-2-8(음력 1월 1일)
TheDate = (curYear - 1921) * 365 + Int((curYear - 1921) / 4) + curDay + MonthAdd(curMonth - 1) - 38
((curYear Mod 4) = 0 AND curMonth > 2) 그러면
TheDate = TheDate + 1
종료 조건
'음력의 천간, 땅가지, 월, 일을 계산합니다.
isEnd = 0
m = 0
'-------------------
하다
If (NongliData(m) < 4095) 그러면
k=11
또 다른
k = 12
다음과 같은 경우 종료
n = k
'-------------------
하다
(n < 0)이면
나가기
종료 조건
'NongliData(m)의 n번째 이진수 값을 구합니다.
비트 = NongliData(m)
i = 1 To n인 경우 1단계
비트 = 정수(비트 / 2)
다음
비트 = 비트 Mod 2
If (TheDate <= 29 + 비트) 그러면
isEnd = 1
나가기
종료 조건
TheDate = TheDate - 29 - 비트
n=n-1
고리
'-------------------
(isEnd = 1) 그렇다면
나가기
종료 조건
m = m + 1
고리
'-------------------
현재 연도 = 1921 + m
현재 월 = k - n + 1
curDay = 날짜
(k = 12)이면
If (curMonth = (Int(NongliData(m) / 65536) + 1)) 그러면
curMonth = 1 - curMonth
ElseIf (curMonth > (Int(NongliData(m) / 65536) + 1)) Then
curMonth = curMonth - 1
다음과 같은 경우 종료
종료 조건
'음력 천간지와 지간지 생성 ==> sChinaYear
sChinaYear = "음력"&arrTianGan(((curYear - 4) Mod 60) Mod 10)&arrDiZhi(((curYear - 4) Mod 60) Mod 12)&"연도"
'조디악 생성 == > sChinaAni
sChinaAni = arrShuXiang(((curYear - 4) Mod 60) Mod 12)
'음력 월일 생성 ==> NongliDayStr
(curMonth < 1)이면
sChinaDay = "Leap"&arrMonName(-1 * curMonth)
또 다른
sChinaDay = arrMonName(curMonth)
종료 조건
sChinaDay = sChinaDay&"월"
sChinaDay = sChinaDay & arrDayName(curDay)
기능 종료
수업 종료
%>