フェスティバルと月のカレンダーを備えたスクリプト:
コードコピーは次のとおりです。
<html>
<head>
<meta http-equiv = "content-type" content = "text/html; charset = gb2312">
<Title> LUNAR Calendarを使用したカレンダー</title>
<スクリプト言語= "javascript">
<! -
var lunarinfo = new Array(
0x04bd8,0x04ae0,0x0a570,0x054d5,0x0d260,0x0d950,0x1654,0x056a0,0x09ad0,0x055d2、
0x04ae0,0x0a5b6,0x0a4d0,0x0d250,0x1d255,0x0b540,0x0d6a0,0x0ada2,0x095b0,0x14977、
0x04970,0x0a4b0,0x0b4b5,0x06a50,0x06d40,0x1ab54,02b60,0x09570,0x052f2,0x04970、
0x06566、0x0d4a0、0x0ea50、0x06e95、0x05ad0、0x02b60、0x186e3、0x092e0、0x1c8d7、0x0c950、
0x0d4a0,0x1d8a6,0x0b550,0x056a0,0x1a5b4,0x025d0,092d0,0x0d2b2,0x0a950,0x0b557、
0x06CA0,0X0B5550,0x15355,0x04DA0,0x0A5D0,0x14573,052D0,0x0A9A8,0X0E950,0x06AA0、
0x0aea6,0x0ab50,0x04b60,0x0aae4,0x0a570,0x05260,0x0f263,0x0d950,0x05b57,0x056a0、
0x096d0,0x04dd5,0x04ad0,0x0a4d0,0x0d4d4d4,0x0d250,0x0d558,0x0b540,0x0b5a0,0x195a6、
0x095b0,0x049b0,0x0a974,0x0a4b0,0x0b27a、0x06a50,0x06d40,0x0af46,0x060,0x09570、
0x04af5,0x04970,0x064b0,0x074a3,0x0ea50,0x06b58,0x055c0,0x0ab60,0x096d5,0x092e0、
0x0c960,0x0d954,0x0d4a0,0x0da50,0x07552,0x056a0,0x0abb7,0x025d0,0x092d0,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,0x0aa50,0x1b255,0x06d20,0x0ada0)
var solarmonth = new Array(31,28,31,30,31,30,31,31,31,30,31);
var Animals = new Array( "rat"、 "ox"、 "tiger"、 "Rabbit"、 "Dragon"、 "Snake"、 "Horse"、 "Sheep"、 "Monkey"、 "Chicken"、 "Dog"、 "Pig");
var solarterm = new Array( "Little Cold"、 "Great Cold"、 "spring of Spring"、 "雨水"、「jingzhe」、「春の馬車」、「青雨」、「夏の雨」、「始まり」、「小さな男」、「穀物種子」、「夏の太陽の太陽」、「小さな暑さ」、「秋の熱」、「秋の熱」、「「 '' '""」、「' wirting ""、 "露 "、「霜が降りる」、「低雪」、「高雪」、「冬至」);
var sterminfo = new配列(0,21208,42467,63836,85337,107014,128867,150921,173149,19551,218072,240693,26 3343,285989,308563,331033,353350,375494,397447,419210,440795,4622224,483532,504758);
var nstr1 = new Array( 'day'、 'one'、 'two'、 'three'、 'four'、 'five'、 'six'、 'seven'、 'eight'、 'nine'、 'twelve');
var nstr2 = new Array( 'first'、 'ten'、 'twenty'、 'thirty');
//グレゴリオカレンダーフェスティバル
var sftv = new Array(
「0101新年の日」、
「0214バレンタインデー」、
「0308女性の日」、
「0312アーバーデイ」、
「0315消費者権利日」、
「0401エイプリルフールの日」、
「0501労働者の日」、
「0504 Youth Day」、
「0512看護師の日」、
「0601子供の日」、
「0701パーティー設立日」、
「0801陸軍の日」、
「0910教師の日」、
「0928孔子の誕生」、
「1001 National Day」、
「1006年齢の日」、
「1024国連の日」、
「1224クリスマスイブ」、
「1225クリスマス」)
// Lunar Lunar Festival
var lftv = new Array(
「0101春祭り」、
「0115ランタンフェスティバル」、
「0505ドラゴンボートフェスティバル」、
「0707中国のバレンタインデー」、
「0715 Zhongyuan Festival」、
「0815 Autumn Festival」、
「0909ダブルナインフェスティバル」、
「1208 LABAフェスティバル」、
「1224小さな新年」)
//月カレンダーのy年の総日数に戻る
関数lyeardays(y){
var i、sum = 348;
for(i = 0x8000; i> 0x8; i >> = 1)sum+=(lunarinfo [y-1900]&i)?1:0;
return(sum+leapdays(y));
}
//月の年の跳躍月の日数に戻るy
関数の跳躍(y){
if(leapmonth(y))return((lunarinfo [y-1900]&0x10000)?30:29);
else return(0);
}
// y年の月のカレンダーの月は跳躍月であり、0に戻るための跳躍月ではないと判断します
関数leapmonth(y){
return(lunarinfo [y-1900]&0xf);
}
//月カレンダーの年と月の総日数に戻る
function monthdays(y、m){
return((lunarinfo [y-1900]&(0x10000 >> m))?30:29);
}
//今月の最初の日の月の日付と、月カレンダーの今月の初日の月の日付を計算します。
関数dianaday(objdate){
var i、leap = 0、temp = 0;
var basedate = new Date(1900,0,31);
var offset =(objdate -basedate)/86400000;
this.daycyl = offset+40;
this.moncyl = 14;
for(i = 1900; i <2050 && offset> 0; i ++){
temp = lyeardays(i)
オフセット - =温度;
this.moncyl += 12;
}
if(offset <0){
offset += temp;
私 - ;
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; // Leap Monthをリリースします
オフセット - =温度;
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){offset+= temp; -i; - this.moncyl;}
this.month = i;
this.day = offset+1;
}
//グレゴリオカレンダーのy + 1月の年の日数に戻る
function solardays(y、m){
if(m == 1)
return(((y%4 == 0)&&(y%100!= 0)||(y%400 == 0))?29:28);
それ以外
return(solarmonth [m]);
}
//グレゴリオカレンダーと月の暦日の日付を記録します
関数のキャレメント(Syear、Smonth、sday、week、lyear、lmonth、lday、isleap){
this.istoday = false;
//グレゴリオカレンダー
this.syear = syear;
this.smonth = smonth;
this.sday = sday;
this.week = week;
//月カレンダー
this.lyear = lyear;
this.lmonth = lmonth;
this.lday = lday;
this.isleap = isleap;
//お祝いの記録
this.lunarfestival = ''; // Lunar Festival
this.solarfestival = ''; //グレゴリオ祭
this.solarterms = ''; //太陽
}
//特定の年のNth Solar Termに戻り、何日まで(0 Xiaohanから始まる)
関数sterm(y、n){
var offdate = new Date((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 = new Array(3);
var n = 0;
var firstlm = 0;
sdobj = new Date(y、m、1); //月の最初の日の日付
this.length = solardays(y、m); //グレゴリオ暦月の日数
this.firstweek = sdobj.getday(); //グレゴリオ暦月の1日の曜日は何
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 = new Date(y、m、i+1); //月の最初の日の日付
ldobj = new dianaday(sdobj); //月カレンダー
ly = ldobj.year; // LUNAR年
lm = ldobj.month; // lunar month
ld = ldobj.day; //月の日
ll = ldobj.isleap; //月のカレンダーの跳躍月です
lx = ll? Leapdays(ly):数ヶ月(ly、lm); //月の月の最終日
if(lm == 12){eve = lx}
if(n == 0)firstlm = lm;
ldpos [n ++] = i-ld+1;
}
この[i] = new Calelement(y、m+1、i+1、nstr1 [(i+this.firstweek)%7]、ly、lm、ld ++、ll);
if((i+this.firstweek)%7 == 0){
この[i] .color = 'red'; //日曜日の色
}
}
//ソーラーソーラー用語
Tmp1 = sterm(y、m*2)-1;
tmp2 = sterm(y、m*2+1)-1;
この[tmp1] .solarterms = solarterm [m*2];
この[tmp2] .solarterms = solarterm [m*2+1];
if((this.firstweek+12)%7 == 5)//ブラックフライデー
この[12] .solarfestival += 'Black Friday';
if(y == ty && m == tm)this [td-1] .istoday = true; //今日
}
//中国語の月カレンダーの日付を表示します
関数cday(d){
var s;
switch(d){
ケース10:
s = '最初の月の月の10日目';壊す;
ケース20:
s = '20';壊す;
壊す;
ケース30:
s = 'thirty';壊す;
壊す;
デフォルト:
s = nstr2 [math.floor(d/10)];
s += nstr1 [d%10];
}
return(s);
}
var Cld;
関数drawcld(sy、sm){
var tf = true;
var p1 = p2 = "";
var i、sd、s、size;
cld = new Calendar(sy、sm);
gz.innerhtml = '【'+動物[(sy-4)%12]+']'; // Zodiac
for(i = 0; i <42; i ++){
sobj = eval( 'sd'+ i);
lobj = eval( '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? 'lames:' big ') +' </b> ';
}
else {lobj.innerhtml = cday(cld [sd] .lday);} // lunar dayを表示します
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)){cld [sd]){
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)){//大Year日かどうかを判断してください
if(eve ==(cld [sd] .lday)){lobj.innerhtml = "新年"; slfw = "新年";}
}
}
for(var ipp = 0; ipp <sftv.length; ipp ++){//グレゴリアンカレンダーフェスティバル
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 = "母の日"; lobj.innerhtml = "母の日"}
}
else if(fat <9){
if((sd+1)==((7-fat)+8)){ssfw = "mother's day"; lobj.innerhtml = "母の日"}
}
}
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] .solarterms;
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 = '';
}
}
}
//ドロップダウンリストで年と月を選択するときは、カスタム関数drawcld()を呼び出して、グレゴリオカレンダーと月カレンダーに関する関連情報を表示します
関数changecld(){
var y、m;
y = cld.sy.selectedindex+1900;
m = cld.sm.selectedindex;
drawcld(y、m);
}
//カスタム変数を使用して、現在のシステムで年、月、日を節約します
var today = new Date();
var ty = today.gettlyear();
var tm = today.getmonth();
var td = today.getDate();
//ページを開くときは、ドロップダウンリストに現在の年と月を表示し、カスタム関数drawcld()を呼び出して、グレゴリオカレンダーと月のカレンダーに関する関連情報を表示します。
関数initial(){
cld.sy.selectedIndex = ty-1900;
cld.sm.selectedindex = tm;
drawcld(ty、tm);
}
//->
</script>
<body onload = initial()>
<center>
<form name = 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">グレゴリオカレンダー
<select name = sy onchange = changecld()style = "font-size:9pt">
<スクリプト言語= "javascript">
for(i = 1900; i <2050; i ++)document.write( '<option>'+i);
</script>
</select> year <select name = sm onchange = changecld()style = "font-size:9pt">
<スクリプト言語= "javascript">
for(i = 1; i <13; i ++)document.write( '<option>'+i);
</script>
</select>月</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"> 1 </td>
<td width = 54 style = "font-size:9pt"> 2 </td>
<td width = 54 style = "font-size:9pt"> 3 </td>
<td width = 54 style = "font-size:9pt"> 4 </td>
<td width = 54 style = "font-size:9pt"> 5 </td>
<td width = 54 style = "font-size:9pt"> 6 </td> </tr>
<スクリプト言語= "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 = 2 face = "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>');
}
</script>
</table>
</td>
</tr>
</table>
</form>
</center>
</body>
</html>
フェスティバルとソーラー用語と月のカレンダーを備えたカレンダー効果により、非常にまれです。友達が気に入ってくれることを願っています。