祭りと旧暦のスクリプト: コードをコピー コードは次のとおりです: <頭> 带农历の日々 <br> <!--<br /> var lunarInfo=新しい配列(<br /> 0x04bd8,0x04ae0,0x0a570,0x054d5,0x0d260,0x0d950,0x16554,0x056a0,0x09ad0,0x055d2,<br /> 0x04ae0,0x0a5b6,0x0a4d0,0x0d250,0x1d255,0x0b540,0x0d6a0,0x0ada2,0x095b0,0x14977,<br /> 0x04970,0x0a4b0,0x0b4b5,0x06a50,0x06d40,0x1ab54,0x02b60,0x09570,0x052f2,0x04970,<br /> 0x06566,0x0d4a0,0x0ea50,0x06e95,0x05ad0,0x02b60,0x186e3,0x092e0,0x1c8d7,0x0c950,<br /> 0x0d4a0,0x1d8a6,0x0b550,0x056a0,0x1a5b4,0x025d0,0x092d0,0x0d2b2,0x0a950,0x0b557,<br /> 0x06ca0,0x0b550,0x15355,0x04da0,0x0a5d0,0x14573,0x052d0,0x0a9a8,0x0e950,0x06aa0,<br /> 0x0aea6,0x0ab50,0x04b60,0x0aae4,0x0a570,0x05260,0x0f263,0x0d950,0x05b57,0x056a0,<br /> 0x096d0,0x04dd5,0x04ad0,0x0a4d0,0x0d4d4,0x0d250,0x0d558,0x0b540,0x0b5a0,0x195a6,<br /> 0x095b0,0x049b0,0x0a974,0x0a4b0,0x0b27a,0x06a50,0x06d40,0x0af46,0x0ab60,0x09570,<br /> 0x04af5,0x04970,0x064b0,0x074a3,0x0ea50,0x06b58,0x055c0,0x0ab60,0x096d5,0x092e0,<br /> 0x0c960,0x0d954,0x0d4a0,0x0da50,0x07552,0x056a0,0x0abb7,0x025d0,0x092d0,0x0cab5,<br /> 0x0a950,0x0b4a0,0x0baa4,0x0ad50,0x055d9,0x04ba0,0x0a5b0,0x15176,0x052b0,0x0a930,<br /> 0x07954,0x06aa0,0x0ad50,0x05b52,0x04b60,0x0a6e6,0x0a4e0,0x0d260,0x0ea65,0x0d530,<br /> 0x05aa0,0x076a3,0x096d0,0x04bd7,0x04ad0,0x0a4d0,0x1d0b6,0x0d250,0x0d520,0x0dd45,<br /> 0x0b5a0,0x056d0,0x055b2,0x049b0,0x0a577,0x0a4b0,0x0aa50,0x1b255,0x06d20,0x0ada0)<br /> <br /> var SolarMonth=new Array(31,28,31,30,31,30,31,31,30,31,30,31);<br /> var Animals=new Array("鼠","牛","虎","兔","龙","蛇","马","羊","猴","鸡","狗", "猪");<br /> var SolarTerm = new Array("小寒","大寒","立春","雨水","惊蛰","春分","清明","谷雨","立夏","小满","芒种", 「夏至」、「小暑」、「大暑」、「立秋」、「处暑」、「白露」、「秋分」、「寒露」、「霜降」、「立冬」、「小雪」、「大雪」、「冬至」 ");<br /> var sTermInfo = new Array(0,21208,42467,63836,85337,107014,128867,150921,173149,195551,218072,240693,263343,285989,308563,331033,353350 ,375494,397447,419210,440795,462224, 483532,504758);<br /> var nStr1 = new Array('日','一','二','三','四','五','六','七','八','九','十') ;<br /> var nStr2 = new Array('初','十','廿','卅');<br /> //公历节日<br /> var sFtv = 新しい配列(<br /> "0101 元旦"、<br /> "0214 情人节",<br /> "0308 妇女节",<br /> "0312 植树节",<br /> "0315 消费者权益日",<br /> "0401 愚人节",<br /> "0501 劳動节",<br /> "0504 青年节",<br /> "0512 护士节",<br /> "0601 儿童节",<br /> "0701 建党节",<br /> "0801 建军节",<br /> "0910 教师节",<br /> "0928 孔子诞辰",<br /> "1001 国庆节",<br /> "1006 老人节",<br /> "1024联合国日",<br /> 「1224平安夜」、<br /> "1225 圣诞节")<br /> //农历节日<br /> var lFtv = 新しい配列(<br /> "0101 春节",<br /> "0115 元宵节",<br /> "0505 端午节",<br /> "0707 七夕情人节",<br /> "0715 中元节",<br /> "0815 中秋节",<br /> "0909 重阳节",<br /> "1208 腊八节",<br /> "1224 小年")<br /> //农历y年の总天数<br />を返します 関数 lyearDays(y) {<br /> var i, sum = 348;<br /> for(i=0x8000; i>0x8; i>>=1)sum =(lunarInfo[y-1900]&i)?1:0;<br /> return(sum LeapDays(y));<br /> }<br /> //农历y年闰月の天数<br />を返します 関数 LeapDays(y) {<br /> if(leapMonth(y)) return((lunarInfo[y-1900] & 0x10000)? 30:29);<br /> それ以外の場合は return(0);<br /> }<br /> // 判断年の农历中那个月は闰月,不是闰月返0<br /> 関数leapMonth(y){<br /> return(lunarInfo[y-1900]&0xf);<br /> }<br /> //农历y年m月の总天数<br />を返します 関数 monthDays(y,m){<br /> return((lunarInfo[y-1900]&(0x10000>gt;>m))?30:29);<br /> }<br /> //当前月第一天の农历日期と当前农历日期下の一月农历の第一天日期を計算します<br /> function Dianaday(objDate) {<br /> var i、leap=0、temp=0;<br /> varbaseDate = 新しい日付(1900,0,31);<br /> var offset = (objDate - BaseDate)/86400000;<br /> this.dayCyl = オフセット 40;<br /> this.monCyl = 14;<br /> for(i=1900; i<2050 && offset>0; i ) {<br /> temp = l年日数(i)<br /> オフセット -= 温度;<br /> this.monCyl = 12;<br /> }<br /> if(オフセット<0) {<br /> オフセット = 温度;<br /> 私--;<br /> this.monCyl -= 12;<br /> }<br /> this.year = i;<br /> this.yearCyl=i-1864;<br /> 閏 = 閏月(i); //闰哪个月<br /> this.isLeap = false;<br /> for(i=1; i<13 && offset>0; i ) {<br /> if(閏>0 && i==(閏 1) && this.isLeap==false){ //闰月<br /> - 私; this.isLeap = true; temp = LeapDays(this.year);}<br /> それ以外{<br /> temp = monthDays(this.year, i);}<br /> if(this.isLeap==true && i==(leap 1)) this.isLeap = false; //解除闰月<br /> オフセット -= 温度;<br /> if(this.isLeap == false) this.monCyl ;<br /> }<br /> if(offset==0 && リープ>0 && i==リープ 1)<br> if(this.isLeap){ this.isLeap = false;}<br> else{this.isLeap=true;--i;--this.monCyl;}<br> if(offset this.month=i;<br> this.day=オフセット 1;<br> }<br> //公历y年m 1月の天数<br>を返します 関数 SolarDays(y,m){<br> if(m==1)<br> return(((y%4==0)&&(y 0!=0)||(y@0==0))?29:28);<br> それ以外<br> return(solarMonth[m]);<br> }<br> //记录公历と农历某天の日期<br> function calElement(s年,s月,s日,週,l年,lMonth,lDay,isLeap) {<br> this.isToday = false;<br> //公历<br> this.s年 = s年;<br> this.sMonth = sMonth;<br> this.sDay = sDay;<br> this.week = 週;<br> //农历<br> this.l年 = l年;<br> this.lMonth = lMonth;<br> this.lDay = lDay;<br> this.isLeap = isLeap;<br> //节日记录<br> this.lunarFestival = ''; //农历节日<br> this.solarFestival = ''; //公历节日<br> this.solarTerms = ''; //节气<br> }<br> // ある年の第二节气を几日(从0小寒起算)<br>に返します 関数 sTerm(y,n) {<br> var offDate = new Date((31556925974.7*(y-1900) sTermInfo[n]*60000) Date.UTC(1900,0,6,2,5));<br> return(offDate.getUTCDate())<br> }<br> //保存y年m 1月の相关情報<br> var fat=mat=9;<br> var eve=0;<br> 関数カレンダー(y,m) {<br> fat=mat=0;<br> var sDObj,lDObj,lY,lM,lD=1,lL,lX=0,tmp1,tmp2;<br> var lDPOS = 新しい配列(3);<br> var n = 0;<br> var firstLM = 0;<br> sDObj = 新しい日付(y,m,1); //当月第一天的日期<br> this.length = SolarDays(y,m); //公历当月天数<br> this.firstWeek = sDObj.getDay(); //公历当月1日星期几<br> if ((m 1)==5){fat=sDObj.getDay()}<br> if ((m 1)==6){mat=sDObj.getDay()}<br> for(var i=0;i<this.length></this.length> if(lD>lX) {<br> sDObj = 新しい日付(y,m,i 1); //当月第一天的日期<br> lDObj = 新しいダイアナデイ(sDObj); //农历<br> lY = lDObj.年; //农历年<br> lM = lDObj.month; //农历月<br> lD = lDObj.day; //农历日<br> lL = lDObj.isLeap; //农历かどうか闰月<br> lX = lL?うるう日(lY): 月日(lY,lM); //农历当月最後の一天<br> if (lM==12){eve=lX}<br> if(n==0) firstLM = lM;<br> IDPOS[n ] = i-LD 1;<br> }<br> this[i] = new calElement(y,m 1,i 1,nStr1[(i this.firstWeek)%7],lY,lM,lD ,lL);<br> if((i this.firstWeek)%7==0){<br>This[i].color = 'red' //日曜日の色<br>; }<br> }<br> //太陽用語<br> tmp1=sTerm(y,m*2)-1;<br> tmp2=sTerm(y,m*2 1)-1;<br> This[tmp1].solarTerms = SolarTerm[m*2];<br> This[tmp2].solarTerms = SolarTerm[m*2 1];<br> If((this.firstWeek 12)%7==5) //ブラックフライデー<br> This[12].solarFestival = 'ブラック フライデー';<br> If(y==tY && m==tM) this[tD-1].isToday = true //今日<br> }<br> //旧暦の日付を中国語で表示します <br> 関数 cDay(d){<br> var s;<br> スイッチ (d) {<br> ケース 10:<br> s = '陰暦の月 10 日';<br> ケース 20:<br> s = '20' 休憩;<br> 休憩;<br> ケース 30:<br> s = '30' 休憩;<br> 休憩;<br> デフォルト:<br> s = nStr2[Math.floor(d/10)];<br> s = nStr1[d];<br> }<br> 戻り値;<br> }<br> var cld;<br> 関数drawCld(SY,SM) {<br> var TF=true;<br> var p1=p2="";<br> var i,sD,s,size;<br> cld = 新しいカレンダー(SY,SM);<br> GZ.innerHTML = ' ' 動物[(SY-4) ] ']' //干支<br>; for(i=0;i sObj=eval('SD' i);<br> lObj=eval('LD' i);<br> sObj.className = '';<br> sD = i - cld.firstWeek;<br> If(sD>-1 && sD<cld.length></cld.length> sObj.innerHTML = sD 1;<br> If(cld[sD].isToday){ sObj.style.color = '#9900FF';} //今日の色<br> else{sObj.style.color = '';}<br> If(cld[sD].lDay==1){ //旧暦の月を表示します<br> lObj.innerHTML = '<b>' (cld[sD].isLeap?'Leap':'') cld[sD].lMonth 'month' (monthDays(cld[sD].lyear,cld[sD].lMonth) )==29?'小さい':'大きい') '</b>';<br> }<br> else{lObj.innerHTML = cDay(cld[sD].lDay);} 。 var Slfw=Ssfw=null;<br> s=cld[sD].solarFestival;<br> for (var ipp=0;ipp<lftv.length></lftv.length> If (parseInt(lFtv[ipp].substr(0,2))==(cld[sD].lMonth)){<br> If (parseInt(lFtv[ipp].substr(2,4))==(cld[sD].lDay)){<br> lObj.innerHTML=lFtv[ipp].substr(5);<br> Slfw=lFtv[ipp].substr(5);<br> }<br> }<br> If (12==(cld[sD].lMonth)){ //大晦日かどうかを判断します<br> If (eve==(cld[sD].lDay)){lObj.innerHTML="大晦日";Slfw="大晦日";}<br> }<br> }<br> for (var ipp=0;ipp<sftv.length></sftv.length> If (parseInt(sFtv[ipp].substr(0,2))==(SM 1)){<br> If (parseInt(sFtv[ipp].substr(2,4))==(sD 1)){<br>lObj.innerHTML=sFtv[ipp].substr(5);<br> Ssfw=sFtv[ipp].substr(5);<br> }<br> }<br> }<br> If ((SM 1)==5){ //母の日<br> If (脂肪==0){<br> If ((sD 1)==7){Ssfw="母の日";lObj.innerHTML="母の日"}<br> }<br> else if (fat If ((sD 1)==((7-fat) 8)){Ssfw="母の日";lObj.innerHTML="母の日"}<br> }<br> }<br> If ((SM 1)==6){ //父の日<br> if (mat==0){<br> If ((sD 1)==14){Ssfw="父の日";lObj.innerHTML="父の日"}<br> }<br> else if (mat If ((sD 1)==((7-mat) 15)){Ssfw="父の日";lObj.innerHTML="父の日"}<br> }<br> }<br> s=cld[sD].solarTerms;<br> If(s.length>0) s = s.fontcolor('limegreen'); }<br> If(s.length>0) {lObj.innerHTML=s;Slfw=s;} //太陽項<br> If ((Slfw!=null)&&(Ssfw!=null)){<br> lObj.innerHTML=Slfw "/" Ssfw;<br> }<br> else { //日付なし<br> sObj.innerHTML = '';<br> lObj.innerHTML = '';<br> }<br> }<br> }<br> //ドロップダウンリストで年と月を選択すると、カスタム関数drawCld()を呼び出して、グレゴリオ暦と旧暦の関連情報を表示します<br> 関数changeCld() {<br> var y,m;<br> y=CLD.SY.selectedIndex 1900;<br> m=CLD.SM.selectedIndex;<br> drawCld(y,m);<br> }<br> //カスタム変数を使用して、現在のシステムに年、月、日を保存します<br> var Today = new Date();<br> var tY = Today.getFull Year();<br> var tM = Today.getMonth();<br> var tD = Today.getDate();<br> // ページを開くと、現在の年と月がドロップダウン リストに表示され、カスタム関数drawCld() が呼び出されて、グレゴリオ暦と太陰暦に関連する情報が表示されます<br> 関数Initial() {<br> CLD.SY.selectedIndex=tY-1900;<br> CLD.SM.selectedIndex=tM;<br> drawCld(tY,tM);<br> }<br> //--><br> </スクリプト> <br> <BODY onload=initial()><br> <br> <フォーム名=CLD><br> <br> <tr> <br> <TD align=middle><br> <TABLE border=1 cellpadding="0" cellpacing="0" bordercolordark="#FFFFFF" bordercolor="#ffffff" bordercolorlight="#EEEEEE"><br> </tr> <tr bgcolor="#006600"> <br> <TDcolSpan=7><FONT color=#ffffff style="FONT-SIZE: 9pt">グレゴリオ暦 <br> <SELECT name=SY onchange=changeCld() style="FONT-SIZE: 9pt"> <br> <SCRIPT 言語="JavaScript"><br> for(i=1900;i 年 <br> for(i=1;i 月 日 一 二 三 四 五 六 <br> var gNum;<br> for(i=0;i document.write('<tr align=center>');<br> for(j=0;j gNum = i*7 j;<br> document.write('<td id="GD' gNum '"><font id="SD' gNum '" size=2 face="Arial Black"');<br /> if(j == 0) document.write(' color=red');<br /> if(j == 6) document.write(' color=#000080');<br /> document.write(' TITLE=""> </font><br><font id="LD' gNum '" size=2 style="font-size:9pt"> </font> </td>');<br /> }<br /> document.write('</tr>');<br> }<br>