- 締切済み
画像の変更(休日を指定)
どなたかお分かりの方がいらっしゃいましたらご教授いただければと思います。 現在、ある企業のHPで曜日を指定して営業日の画像を変更しておりますが、現状では祝日や臨時休業日など、平日を休業にしたい場合も営業で表示されてしまいます。 祝日対応のカレンダーと連動させるような形で、尚且つ臨時休業に関して予め自分で指定して画像を変更できる記述はありますでしょうか? よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
私に謝る必要なんてありませんよ!^^; あとはあなたが努力するだけですから。
未検証&投棄!by無責任男^^; <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <title>TEST</title> <p> <img src="default.gif" id="eigyou" alt="営業します" width="80" height="80"> </p> <script type="text/javascript"> window./*@cc_on @if(1)attachEvent('on'+ @else @*/addEventListener(/*@end@*/'load', function(){ var tdy = new Date; var year = tdy.getFullYear(); var holiday =(function getHoliday( y ){ var h = []; add(1,1,'元旦');add(2,11,'建国記念の日');add(4,29,'昭和の日'); add(5,3,'憲法記念日');add(5,4,'みどりの日');add(5,5,'子供の日'); add(11,3,'文化の日');add(11,23,'勤労感謝の日');add(12,23,'天皇誕生日'); add(1,[9,8,14,13,12,11,10][dayCount(y,1,1)%7],'成人の日'); add(3,((20.8431+0.242194*(y-1980))|0)-(((y-1980)/4)|0),'春分の日'); add(7,[16,15,21,20,19,18,17][dayCount(y,7,1)%7],'海の日'); add(9,[16,15,21,20,19,18,17][dayCount(y,9,1)%7],'敬老の日'); add(9,((23.2488+0.242194*(y-1980))|0)-(((y-1980)/4)|0),'秋分の日'); add(0,[9,8,14,13,12,11,10][dayCount(y,10,1)%7],'体育の日'); return h; function add(m,d,g){h[y+'-'+m+'-'+d]=g;if(dayCount(y,m,d)%7==0) h[y+'-'+m+'-'+(d+1)]='振替休日'} function dayCount(y,m,d){ return (y-=(m<3)*1,m+=(m<3)*12,y*365+(y/4|0)-(y/100|0)+(y/400|0)+(306*(m+1)/10|0)-428+d)}; })(year); holiday['2008-12-11']='なんだっけ'; holiday['2009-1-12']='俺の誕生日'; var chk = holiday[ year + '-' + (tdy.getMonth() + 1) + '-' + tdy.getDate() ]; if( chk ) with( document.getElementById('eigyou') ){ src = 'yasumi.gif'; alt = chk + 'のためお休みです' } }, false); </script>
お礼
迅速なご回答ありがとうございます。 早速いただいたスクリプトで試そうと思ったのですが、大事なことを一点書き漏れていました・・・。本当に申し訳ありません。 最初にお話した画像は、表の中にあり、曜日ごとの画像になっていて、当日(今日であれば木曜)の部分だけ色の違う画像にするよう設定しています。 つまり、いただいたスクリプト+基本は月曜日のみ営業~基本は土曜日のみ営業という曜日ごと、画像ごとの指定が必要になってきます。 文章では伝えるのが難しいのですが・・・、 毎週月曜日のみAの画像だとして、他の曜日は基本的にBの画像、ただし月曜が祝日や自分の指定した休日だった場合にはAが通常表示されるところをBを表示させるということです。 月曜日から土曜日まで、6種類指定しないといけないということになります。 せっかく記述していただいたのに、申し訳ありません。 お暇な時にでも再検討していただけると非常に助かります。 よろしくお願いいたします。
- yambejp
- ベストアンサー率51% (3827/7415)
javascriptでやるなら、専用のカレンダーファイルを用意しておいて その設定をみて、休日のときに休日用のcssを読むようにするというのが妥当でしょうか。 もちろん、休日用ページにとんでもいいし、個別のファイルを指定 してjavascriptで画像のスワップするなどの手もあるでしょうけど ただし、javascriptはあくまでクライアントの環境に依存するので 確実性がありません。 可能であればサーバーサイドのプログラムでやる方がよいでしょう。
お礼
ご回答ありがとうございます。 サーバーサイドのプログラムというのが分からないのですが、 javaが確実性が無いことは理解できました。 今回はやろうと思いますが、今後javaを導入する際には、 念頭に置いて検討したいと思います。 ありがとうございました。
お礼
その通りですね。質問を締め切ります。 ご回答者の二名様、ありがとうございました。