축제 및 음력이있는 스크립트 :
코드 사본은 다음과 같습니다.
<html>
<헤드>
<meta http-equiv = "content-type"content = "text/html; charset = gb2312">
<title> 달력이있는 캘린더 </title>
<script language = "javaScript">
<!-
var lunarinfo = 새로운 배열 (
0x04bd8,0x04ae0,0x0a570,0x054d5,0x0d260,0x0d950,0x16554,0x056a0,0x0,0x0555d2,
0x04ae0,0x0a5b6,0x0a4d0,0x0d250,0x1d255,0x0b540,0x0d6a0,0x0ada2,0x095b0,0x14977,
0x04970,0x0a4b0,0x0b4b5,0x06a50,0x06d40,0x1ab54,0x02b60,0x09570,0x052f2,0x04970,
0x06566, 0x0d4a0, 0x0ea50, 0x06e95, 0x05ad0, 0x02b60, 0x186e3, 0x092e0, 0x1c8d7, 0x0c950,
0x0d4a0,0x1d8a6,0x0b550,0x056a0,0x1a5b4,0x025d0,0x092d0,0x0d2b2,0x0b557,
0x06ca0,0x0b550,0x15355,0x04da0,0x0a5d0,0x14573,0x052d0,0x0a9a8,0x0e950,0x06aa0,
0x0AEA6,0X0AB50,0X04B60,0X0AAE4,0X0A570,0X05260,0X0F263,0X0D950,0X05B57,0X056A0,
0x096d0,0x04dd5,0x04ad0,0x0a4d0,0x0d4d4,0x0d250,0x0d558,0x0b540,0x0b5a0,0x195a6,
0x095b0,0x049b0,0x0a974,0x0a4b0,0x0b27a, 0x06a50,0x06d40,0x0af46,0x0,0x09570,
0x04AF5,0X04970,0X064B0,0X074A3,0X0EA50,0X06B58,0X055C0,0X0AB60,0X096D5,0X092E0,
0x0c960,0x0d954,0x0d4a0,0x0da50,0x07552,0x056a0,0x0abb7,0x025d0,0x0d0,0x0cab5,
0x0a950,0x0b4a0,0x0baa4,0x0ad50,0x055d9,0x04ba0,0x0a5b0,0x15176,0x052b0,0x0a930,
0x07954, 0x06AA0, 0x0AD50, 0x05B52, 0x04B60, 0X0A6E6, 0x0A4E0, 0x0D260, 0x0EA65, 0x0D530,
0x05AA0,0X076A3,0X096D0,0X04BD7,0X04AD0,0X0A4D0,0X1D0B6,0X0D250,0X0D520,0X0D45,
0x0b5a0,0x056d0,0x055b2,0x049b0,0x0a577,0x0a4b0,0x0aa550,0x1b255,0x06d20,0x0ada0)
var solarmonth = 새로운 배열 (31,28,31,30,31,31,31,31,31,30,31);
var 동물 = 새로운 어레이 ( "쥐", "황소", "호랑이", "토끼", "드래곤", "뱀", "말", "양", "Monkey", "닭", "개", "돼지");
var SolarTerm = New Array ( "Little Cold", "Great Cold", "Spring", "Rain Water", "Jingzhe", "Spring Equinox", "Qingming", "Green Rain", "Little Man", "Little Heat", "Summer", "Little Heat", "Great Heat", "Eat Heat", "DeWin", "", "", "", " "콜드 이슬", "프로스트 하강", "낮은 눈", "높은 눈", "겨울 동지");
var sterminfo = 새로운 배열 (0,21208,42467,63836,85337,107014,128867,150921,173149,19551,218072,240693,26 3343,285989,308563,331033,353350,375494,397447,419210,440795,462224,483532,504758);
var nStr1 = 새로운 배열 ( 'day', 'one', 'two', 'three', 'four', 'five', 'six', 'Seven', '8', 'Nine', 'Twelve');
var nstr2 = 새로운 배열 ( '첫 번째', '10', 'Twenty', 'Thretty');
// Gregorian Calendar Festival
var sftv = 새로운 배열 (
"0101 새해의 날",
"0214 발렌타인 데이",
"0308 여자의 날",
"0312 Arbor Day",
"0315 소비자 권리의 날",
"0401 April Fool 's Day",
"0501 노동절",
"0504 청소년의 날",
"0512 간호사의 날",
"0601 어린이의 날",
"0701 파티 창립 날",
"0801 군대",
"0910 교사의 날",
"0928 공자의 탄생",
"1001 National Day",
"1006 노인의 날",
"1024 유엔의 날",
"1224 크리스마스 이브",
"1225 크리스마스")
// Lunar Lunar Festival
var lftv = 새로운 배열 (
"0101 봄 축제",
"0115 랜턴 페스티벌",
"0505 드래곤 보트 페스티벌",
"0707 중국 발렌타인 데이",
"0715 Zhongyuan Festival",
"0815 중반 축제",
"0909 더블 아홉 번째 축제",
"1208 라바 페스티벌",
"1224 작은 새해")
// 음력 달력의 Y 년의 총 일수로 돌아갑니다.
기능 lyeardays (y) {
var i, sum = 348;
for (i = 0x8000; i> 0x8; i >> = 1) sum+= (Lunarinfo [y-1900] & i)? 1 : 0;
반환 (Sum+LeapDays (y));
}
// 달년의 도약 달의 일수로 돌아 가기 y
함수 도약 (y) {
if (Leapmonth (y)) return ((Lunarinfo [y-1900] & 0x10000)? 30 : 29);
그렇지 않으면 반환 (0);
}
// 연도의 음력 달력의 달은 도약의 달이며, 0으로 돌아 오는 도약이 아니라 도약의 달이라고 판단합니다.
함수 leapmonth (y) {
반환 (Lunarinfo [Y-1900] & 0xf);
}
// 연도의 총 일 및 음력 달력의 달로 돌아갑니다.
기능 월간 (y, m) {
return ((Lunarinfo [y-1900] & (0x10000 >> m))? 30:29);
}
// 현재 달 첫날의 음력 날짜와 달력 달력의 첫날의 달 날짜를 계산합니다.
기능 Dianaday (objdate) {
var i, leap = 0, temp = 0;
var 기반 = 새 날짜 (1900,0,31);
var Offset = (objdate- 기반)/86400000;
this.daycyl = 오프셋+40;
this.moncyl = 14;
for (i = 1900; i <2050 && 오프셋> 0; i ++) {
온도 = lyeardays (i)
오프셋 -= 온도;
this.moncyl += 12;
}
if (오프셋 <0) {
오프셋 += 온도;
나--;
this.moncyl- = 12;
}
this.year = i;
this.yearcyl = I-1864;
leap = leapmonth (i); // 월이 도약
this.isleap = false;
for (i = 1; i <13 && offset> 0; i ++) {
if (leap> 0 && i == (leap+1) && this.isleap == false) {// Leap Month
--나; this.isleap = true; Temp = LeapDays (this.year);}
또 다른{
Temp = Monthdays (this.year, i);}
if (this.isleap == true && i == (leap+1)) this.isleap = false; // 도약의 달을 릴리스합니다
오프셋 -= 온도;
if (this.isleap == false) this.moncyl ++;
}
if (offset == 0 && leap> 0 && i == leap+1)
if (this.isleap) {this.isleap = false;}
else {this.isleap = true;-i;-this.moncyl;}
if (offset <0) {오프셋+= temp;-i;-this.moncyl;}
this.month = i;
this.day = 오프셋+1;
}
// 그레고리 캘린더의 1 월 y + 연도의 일 수로 돌아갑니다.
함수 Solardays (y, m) {
if (m == 1)
return (((y%4 == 0) && (y%100! = 0) || (y%400 == 0))? 29:28);
또 다른
반환 (Solarmonth [M]);
}
// Gregorian Calendar 및 Lunar Calendar Day의 날짜 기록
함수 CALELEMENT (Syear, Smonth, Sday, Week, Lyear, lmonth, lday, Isleap) {
this.istoday = false;
// Gregorian 캘린더
this.syear = syear;
this.smonth = smonth;
this.sday = sday;
this.week = 주;
// Lunar 캘린더
this.lyear = lyear;
this.lmonth = lmonth;
this.lday = lday;
this.isleap = isleap;
// 축제 기록
this.lunarfestival = ''; // 음력 축제
this.solarfestival = ''; // Gregorian Festivals
this.solarterms = ''; // 태양
}
// 특정 연도의 N 번째 태양 기간으로 돌아가서 며칠 (0 Xiaohan부터 시작)
함수 sterm (y, n) {
var offdate = 새 날짜 ((31556925974.7*(y-1900)+sterminfo [n]*60000)+date.utc (1900,0,6,2,5));
return (offdate.getUtCdate ())
}
// y 년 M+ 1 월에 대한 관련 정보를 저장합니다
var fat = mat = 9;
var eve = 0;
함수 캘린더 (y, m) {
fat = mat = 0;
var sdobj, ldobj, ly, lm, ld = 1, ll, lx = 0, tmp1, tmp2;
var ldpos = 새로운 배열 (3);
var n = 0;
var firstlm = 0;
sdobj = 새로운 날짜 (y, m, 1); // 월 첫날 날짜
this.length = solardays (y, m); // Gregorian 달력의 달의 일수
this.firstweek = sdobj.getday (); // Gregorian 달력 달의 첫 번째 요일
if ((m+1) == 5) {fat = sdobj.getday ()}
if ((m+1) == 6) {mat = sdobj.getday ()}
for (var i = 0; i <this.length; i ++) {
if (ld> lx) {
sdobj = 새 날짜 (y, m, i+1); // 월 첫날 날짜
ldobj = New Dianaday (sdobj); // Lunar 캘린더
ly = ldobj.year; // 음시 연도
lm = ldobj.month; //태음월
ld = ldobj.day; // 음력의 날
ll = ldobj.isleap; // 음력 달력 도약의 달입니다
lx = ll? 도약 (ly) : 달 (ly, lm); // 음력의 마지막 날
if (lm == 12) {eve = lx}
if (n == 0) firdlm = lm;
ldpos [n ++] = i-ld+1;
}
이 [i] = 새로운 callement (y, m+1, i+1, nstr1 [(i+this.firstweek)%7], ly, lm, ld ++, ll);
if ((i+this.firstweek)%7 == 0) {
이 [i] .color = '빨간색'; // 일요일 색상
}
}
// 태양 태양열 용어
tmp1 = sterm (y, m*2) -1;
tmp2 = sterm (y, m*2+1) -1;
이 [tmp1] .Solarterms = Solartern [m*2];
이 [tmp2] .Solarterms = Solartern [m*2+1];
if ((this.firstweek+12)%7 == 5) // Black Friday
이 [12] .Solarfestival += 'Black Friday';
if (y == ty && m == tm) this [td-1] .istoday = true; //오늘
}
// 중국어로 달력의 날짜를 표시하십시오
기능 cday (d) {
var s;
스위치 (d) {
case 10:
S = '첫 달의 10 일째 날'; 부서지다;
case 20:
S = 'Twenty'; 부서지다;
부서지다;
case 30:
s = '서른'; 부서지다;
부서지다;
기본:
s = nstr2 [math.floor (d/10)];
s += nstr1 [d%10];
}
보고);
}
var cld;
함수 drawcld (sy, sm) {
var tf = true;
var p1 = p2 = "";
var i, sd, s, 크기;
CLD = 새로운 캘린더 (Sy, SM);
gz.innerhtml = '【'+동물 [(Sy-4)%12]+']; //수대
for (i = 0; i <42; i ++) {
SOBJ = 평가 ( 'SD'+ i);
lobj = 평가 ( 'ld'+ i);
sobj.classname = '';
sd = i -cld.firstweek;
if (sd> -1 && sd <cld.length) {// 날짜에
sobj.innerhtml = sd+1;
if (cld [sd] .istoday) {sobj.style.color = '#9900ff';} // 오늘의 색상
else {sobj.style.color = '';}
if (cld [sd] .lday == 1) {// 음력을 보여줍니다
lobj.innerhtml = '<b>' + (cld [sd] .isleap? 'leap': '') + cld [sd] .lmonth + 'Month' + (Cld [sd] .lyear, cld [sd] .lmonth) == 29? 'small': 'big' + '</b>';
}
else {lobj.innerhtml = cday (cld [sd] .lday);} // 음력을 보여줍니다
var slfw = ssfw = null;
s = cld [sd] .Solarfestival;
for (var ipp = 0; ipp <lftv.length; ipp ++) {// Lunar Lunar Festival
if (parseint (lftv [ipp] .substr (0,2)) == (cld [sd] .lmonth)) {
if (parseint (lftv [ipp] .substr (2,4)) == (cld [sd] .lday)) {
lobj.innerhtml = lftv [ipp] .substr (5);
slfw = lftv [ipp] .substr (5);
}
}
if (12 == (cld [sd] .lmonth)) {// 새해 전날 여부를 판단합니다.
if (eve == (cld [sd] .lday)) {lobj.innerhtml = "New Year 's Eve"; slfw = "New Year's Eve";}
}
}
for (var ipp = 0; ipp <sftv.length; ipp ++) {// Gregorian Calendar Festival
if (parseint (sftv [ipp] .substr (0,2)) == (sm+1)) {
if (parseint (sftv [ipp] .substr (2,4)) == (sd+1)) {
lobj.innerhtml = sftv [ipp] .substr (5);
ssfw = sftv [ipp] .substr (5);
}
}
}
if ((sm+1) == 5) {// 어머니의 날
if (fat == 0) {
if ((sd+1) == 7) {ssfw = "Mother 's Day"; lobj.innerhtml = "Mother's Day"}
}
else if (fat <9) {
if ((sd+1) == ((7-fat) +8)) {ssfw = "Mother 's Day"; lobj.innerhtml = "Mother's Day"}
}
}
if ((sm+1) == 6) {// 아버지의 날
if (mat == 0) {
if ((sd+1) == 14) {ssfw = "아버지의 날"; lobj.innerhtml = "아버지의 날"}
}
else if (mat <9) {
if ((sd+1) == ((7-mat) +15)) {ssfw = "아버지의 날"; lobj.innerhtml = "아버지의 날"}
}
}
if (s.length <= 0) {// 태양 항의 색상을 설정합니다
s = cld [sd]. 분극;
if (s.length> 0) s = s.fontcolor ( 'limegreen');
}
if (s.length> 0) {lobj.innerhtml = s; slfw = s;} // Solar
if ((slfw! = null) && (ssfw! = null)) {
lobj.innerhtml = slfw+"/"+ssfw;
}
}
else {// 비 날짜
sobj.innerhtml = '';
lobj.innerhtml = '';
}
}
}
// 드롭 다운 목록에서 연도 및 월을 선택할 때 Custom Function DrawCld ()에게 전화하여 Gregorian Calendar 및 Lunar Calendar에 대한 관련 정보를 표시하십시오.
함수 changecld () {
var y, m;
y = cld.sy.selectedIndex+1900;
m = cld.sm.selectedIndex;
drawcld (y, m);
}
// 현재 시스템에서 연도, 월 및 일을 저장하기 위해 사용자 정의 변수를 사용합니다.
var today = new Date ();
var ty = today.getlyear ();
var tm = today.getmonth ();
var td = today.getDate ();
// 페이지를 열 때 드롭 다운 목록에 현재 연도와 월을 표시하고 사용자 정의 함수 DrawCld ()를 호출하여 Gregorian 캘린더 및 음력에 대한 관련 정보를 표시하십시오.
함수 이니셜 () {
cld.sy.selectedIndex = ty-1900;
cld.sm.selectedIndex = tm;
drawcld (ty, tm);
}
//->
</스크립트>
<Body Onload = Initial ()>
<centre>
<양식 이름 = cld>
<테이블>
<tr>
<td align = middle>
<테이블 테두리 = 1 CellPadding = "0"CellPacing = "0"BorderColorDark = "#ffffff"BorderColor = "#ffffff"BorderColorlight = "#eeeee">
<tr bgcolor = "#006600">
<td colspan = 7> <font color =#ffffff style = "font-size : 9pt"> Gregorian 캘린더
<select name = sy onchange = changecld () style = "font-size : 9pt">
<script language = "javaScript">
for (i = 1900; i <2050; i ++) document.write ( '<pollite>'+i);
</스크립트>
</select> 년 <select name = sm onchange = changecld () style = "font-size : 9pt">
<script language = "javaScript">
for (i = 1; i <13; i ++) document.write ( '<plooct>'+i);
</스크립트>
</select> month </font> <font color =#ffffff face = 宋 id = gz style = "font-size : 12pt"> </font> <br> </td>
</tr>
<tr align = middle bgcolor =#e0e0e0>
<td width = 54 style = "font-size : 9pt; padding : 5pt;"> day </td>
<td width = 54 style = "font-size : 9pt"> one </td>
<td width = 54 style = "font-size : 9pt"> 2 </td>
<td width = 54 style = "font-size : 9pt"> Three </td>
<td width = 54 style = "font-size : 9pt"> four </td>
<td width = 54 style = "font-size : 9pt"> 5 </td>
<td width = 54 style = "font-size : 9pt"> Six </td> </tr>
<script language = "javaScript">
var gnum;
for (i = 0; i <6; i ++) {
document.write ( '<tr align = center>');
for (j = 0; j <7; j ++) {
gnum = i*7+j;
document.write ( '<td id = "gd' + gnum + '"> <font id = "sd' + gnum + '"size = "arial black"');
if (j == 0) document.write ( 'color = red');
if (j == 6) document.write ( 'color =#000080');
document.write ( 'title = ""> </font> <br> <font id = "ld' + gnum + '"size = 2 style = "font-size : 9pt"> </font> </td>');
}
document.write ( '</tr>');
}
</스크립트>
</테이블>
</td>
</tr>
</테이블>
</form>
</센터>
</body>
</html>
축제 및 태양열 용어 및 음력이있는 달력 효과가 매우 드 rare니다. 나는 당신의 친구들이 그것을 좋아하기를 바랍니다.