2006/1/17 久米
機能 | ムービークリップ | ||
1 | CellMC セルの作成 |
|
![]() |
2 | CallendarMC の作成 |
|
![]() |
head_mcの中にボタンを2つ設定する
/* * 祝日配列取得関数 * 引数yとmは年と月 * 戻り値は祝日の配列 * 使用例 holidayArray=findHoliday(yearValue, monthValue); * for文の中で if(holidayArray[i]) cellArray[count].setTextColor(0xFF0000);//赤 */ function findHoliday(y, m) { var h=new Array(32);//祝日設定配列 trueが祝日 最終的にholidayArrayへ代入 for(var i=0; i<32; i++){ h[i]=false; } // その月の最初の月曜日が何日かを算出 var monday = 1; while(true) { var m_date=new Date(y, m-1, monday);// if(m_date.getDay()==1) break; monday++; } // 祝日をセット switch(m){ case 1: // 元旦 h[1] = true; // 成人の日 if(y < 2000) { h[15] = true; } else { h[monday+7] = true; } break; case 2: // 建国記念日 h[11] = true; break; case 3: // 春分の日 if(y > 1979 && y < 2100) { var tmp = Math.floor(20.8431+(y-1980)*0.242194-Math.floor((y-1980)/4)); h[tmp] = true; } break; case 4: // 天皇誕生日(1988まで) or みどりの日 h[29] = true; break; case 5: // 憲法記念日 h[3] = true; // 子どもの日 h[5] = true; break; case 7: // 海の日 if(y > 2002) { h[monday+14] = true; } else if(y > 1994) { h[21] = true; } break; case 9: // 敬老の日 if(y < 2003) { h[15] = true; } else { h[monday+14] = true; } // 秋分の日 if(y > 1979 && y < 2100) { var tmp = Math.floor(23.2488+(y-1980)*0.242194-Math.floor((y-1980)/4)); h[tmp] = true; } break; case 10: // 体育の日 if(y < 2000) { h[10] = true; } else { h[monday+7] = true; } break; case 11: // 文化の日 h[3] = true; // 勤労感謝の日 h[23] = true; break; case 12: // 天皇誕生日 if(y > 1988) { h[23] = true; } break; } var lastday=new Date(y, m, 0);//来月の1日から1日引いた var days=lastday.getDate();//今月の日数 // 国民の休日 if(y > 1985) { for(var i = 1;i < days;i++) { if(h[i] && h[i+2]) { h[i+1] = true; i = i + 3; } } } // 振り替え休日 var sunday = monday - 1; if(sunday == 0) sunday = 7; for(var i = sunday;i < days;i = i + 7) { if(h[i]) { h[i+1] = true; } } return h; } |