カレンダーの背景をカラフルに
2007/05/19 (Sat) 01:13
サイドバーに表示しているカレンダーの背景を、土曜はブルー、日曜・休日はオレンジにしてみました。(もうちょっと淡い色のが見やすいかも。)JavaScript を使って実装しています。ホントは休日を自動算出したかったんですが、とりあえず楽してベタで休日カレンダーを持っています。
今のところ、2006 年と 2007 年の休日にしか対応していませんので、2008 年になったら追加が必要です。が、早々に自動算出のロジックを入れたいです。
以下が休日かどうかを判定する JavaScript になります。
<script type="text/javascript">
holiday1 = [ "0101", "0211", "0429", "0503", "0504", "0505", "1103", "1123", "1223" ];
holiday2 = [
// 2006
"20060109",
"20060321",
"20060717",
"20060918",
"20060923",
"20061009",
"20061229",
"20061230",
"20061231",
"20060102",
// 2007
"20070108",
"20070321",
"20070716",
"20070917",
"20070923",
"20071008",
"20070212",
"20070430",
"20070924",
"20071224"
];
function isHoliday(year, month, day) {
if (day == "-") {
return false;
}
if (day.length > 2) {
// day = day.replace(/\<.+\>/, "");
day = day.replace(/<a href[^>]*>/g,"").replace(/<\/a>/g,"");
}
if (day.length == 1) {
day = "0" + day;
}
date = month + day;
for (i = 0; i < holiday1.length; i++) {
if (date == holiday1[i]) {
return true;
}
}
date = year + date;
for (i = 0; i < holiday2.length; i++) {
if (date == holiday2[i]) {
return true;
}
}
return false;
}
</script>
holiday1 = [ "0101", "0211", "0429", "0503", "0504", "0505", "1103", "1123", "1223" ];
holiday2 = [
// 2006
"20060109",
"20060321",
"20060717",
"20060918",
"20060923",
"20061009",
"20061229",
"20061230",
"20061231",
"20060102",
// 2007
"20070108",
"20070321",
"20070716",
"20070917",
"20070923",
"20071008",
"20070212",
"20070430",
"20070924",
"20071224"
];
function isHoliday(year, month, day) {
if (day == "-") {
return false;
}
if (day.length > 2) {
// day = day.replace(/\<.+\>/, "");
day = day.replace(/<a href[^>]*>/g,"").replace(/<\/a>/g,"");
}
if (day.length == 1) {
day = "0" + day;
}
date = month + day;
for (i = 0; i < holiday1.length; i++) {
if (date == holiday1[i]) {
return true;
}
}
date = year + date;
for (i = 0; i < holiday2.length; i++) {
if (date == holiday2[i]) {
return true;
}
}
return false;
}
</script>
以下がカレンダーの日付部分です。
<!--calender-->
<tr>
<script type="text/javascript">
if (isHoliday('<%now_year>', '<%now_month>', '<%calender_sun>')) {
document.write('<td class="calender_holi"><%calender_sun></td>\n');
}
else {
document.write('<td class="calender_sun"><%calender_sun></td>\n');
}
if (isHoliday('<%now_year>', '<%now_month>', '<%calender_mon>')) {
document.write('<td class="calender_holi"><%calender_mon></td>\n');
}
else {
document.write('<td><%calender_mon></td>\n');
}
if (isHoliday('<%now_year>', '<%now_month>', '<%calender_tue>')) {
document.write('<td class="calender_holi"><%calender_tue></td>\n');
}
else {
document.write('<td><%calender_tue></td>\n');
}
if (isHoliday('<%now_year>', '<%now_month>', '<%calender_wed>')) {
document.write('<td class="calender_holi"><%calender_wed></td>\n');
}
else {
document.write('<td><%calender_wed></td>\n');
}
if (isHoliday('<%now_year>', '<%now_month>', '<%calender_thu>')) {
document.write('<td class="calender_holi"><%calender_thu></td>\n');
}
else {
document.write('<td><%calender_thu></td>\n');
}
if (isHoliday('<%now_year>', '<%now_month>', '<%calender_fri>')) {
document.write('<td class="calender_holi"><%calender_fri></td>\n');
}
else {
document.write('<td><%calender_fri></td>\n');
}
if (isHoliday('<%now_year>', '<%now_month>', '<%calender_sat>')) {
document.write('<td class="calender_holi"><%calender_sat></td>\n');
}
else {
document.write('<td class="calender_sat"><%calender_sat></td>\n');
}
</script>
</tr>
<!--/calender-->
<tr>
<script type="text/javascript">
if (isHoliday('<%now_year>', '<%now_month>', '<%calender_sun>')) {
document.write('<td class="calender_holi"><%calender_sun></td>\n');
}
else {
document.write('<td class="calender_sun"><%calender_sun></td>\n');
}
if (isHoliday('<%now_year>', '<%now_month>', '<%calender_mon>')) {
document.write('<td class="calender_holi"><%calender_mon></td>\n');
}
else {
document.write('<td><%calender_mon></td>\n');
}
if (isHoliday('<%now_year>', '<%now_month>', '<%calender_tue>')) {
document.write('<td class="calender_holi"><%calender_tue></td>\n');
}
else {
document.write('<td><%calender_tue></td>\n');
}
if (isHoliday('<%now_year>', '<%now_month>', '<%calender_wed>')) {
document.write('<td class="calender_holi"><%calender_wed></td>\n');
}
else {
document.write('<td><%calender_wed></td>\n');
}
if (isHoliday('<%now_year>', '<%now_month>', '<%calender_thu>')) {
document.write('<td class="calender_holi"><%calender_thu></td>\n');
}
else {
document.write('<td><%calender_thu></td>\n');
}
if (isHoliday('<%now_year>', '<%now_month>', '<%calender_fri>')) {
document.write('<td class="calender_holi"><%calender_fri></td>\n');
}
else {
document.write('<td><%calender_fri></td>\n');
}
if (isHoliday('<%now_year>', '<%now_month>', '<%calender_sat>')) {
document.write('<td class="calender_holi"><%calender_sat></td>\n');
}
else {
document.write('<td class="calender_sat"><%calender_sat></td>\n');
}
</script>
</tr>
<!--/calender-->
スパム対策のため言及リンクのないトラックバックは受けないように設定されています。










└わっしー (02/23)
└わっしー (09/07)
└わっしー (07/27)
└わっしー (07/17)
└うれっち (07/17)
└わっしー (07/13)
└わっしー (07/09)
└かりん (07/08)
└わっしー (06/22)
└わっしー (06/21)
└わっしー (06/16)
└生っぴ (06/16)
└わっしー (06/07)
└わっしー (06/07)
└なおみ (06/06)