• 締切済み

カレンダーの年月日の横に翌月へを追加したいです

このカレンダーの年月日の横に翌月へを追加したいのですが やり方がわかりません。 翌月へをクリックすると翌月のカレンダーに変わるようにしたいです。 どなたかよろしくお願いします。 // 表示月数(x) x=1; // cldr = ""; day = new Date(); thisday = day.getDate(); day.setDate(1); month = day.getMonth() + 1; year = day.getYear(); if(year < 2000) year += 1900; numdays = new Array(31,28,31,30,31,30,31,31,30,31,30,31); if((year%4 == 0) && (year%100 != 0) || (year%400 == 0)) numdays[1] = 29; for(j = 0; j < x; j++){ date = new Date(); date.setDate(1) thisMonth = date.getMonth() + 1 + j; date.setMonth(thisMonth - 1); if(thisMonth > 12){ if(thisMonth % 12 == 1){ year++; } } thisMonth = date.getMonth() + 1; date.setDate(1); firstDay = date.getDay(); if(thisMonth == 1){holiday1 = 1; holiday2 = 14-(firstDay+5)%7; holiday3 = -1} else if(thisMonth == 2){holiday1 = 11; holiday2 = -1; holiday3 = -1} else if(thisMonth == 3){ ed = 20.8431 + 0.242194 * (year - 1980) - Math.floor((year - 1980)/4); holiday1 = Math.floor(ed); holiday2 = -1; holiday3 = -1; } else if(thisMonth == 4){holiday1 = -1; holiday2 = -1; holiday3 = -1} else if(thisMonth == 5){holiday1 = 3; holiday2 = 4; holiday3 = 5} else if(thisMonth == 6){holiday1 = -1; holiday2 = -1; holiday3 = -1} else if(thisMonth == 7){holiday1 = 21-(firstDay+5)%7; holiday2 = -1;holiday3 = -1} else if(thisMonth == 8){holiday1 = -1; holiday2 = -1; holiday3 = -1} else if(thisMonth == 9){ holiday1 = 21-(firstDay+5)%7; ed = 23.2488 + 0.242194 * (year - 1980) - Math.floor((year - 1980)/4); holiday2 = Math.floor(ed); holiday3 = -1 } else if(thisMonth == 10){holiday1 = 14-(firstDay+5)%7;; holiday2 = -1; holiday3 = -1} else if(thisMonth == 11){holiday1 = 3; holiday2 = 23; holiday3 = -1} else if(thisMonth == 12){holiday1 = 23; holiday2 = 30; holiday3 = -1} // 文字サイズ ymsize =16; dysize =16; // // 色 color0 = "aqua"; // 今日の背景 color2 = "red"; // 日曜,金曜,祝祭日 // cldr += "<table class='calender'>"; // カレンダーTable内の書式 cldr += "<tr class='calender'><th colspan=4><font color='#ffffff' style='font-size : "+ ymsize +"px;'>"+year+"年"+thisMonth+"月</font></th><th colspan=3>翌月へ</th></tr>"; // 年月セルの書式 cldr += "<tr class='calender2'><td>日</td><td>月</td><td>火</font></td><td>水</td><td>木</td><td>金</td><td>土</td></tr>"; for(sunday = 1-date.getDay(); sunday <= 36; sunday +=7){ cldr += "<tr align=center>"; for(i = sunday; i < sunday + 7; i++){ if((i > 0) && (i <= numdays[thisMonth-1])){ date.setDate(i); today = date.getDay(); if((thisday == i)&&(month == thisMonth)){ cldr += "<td bgcolor='"+ color0 +"'>" }else{ cldr += "<td>"; } if((today == 0)||(i == holiday1)||(i == holiday2)||(i == holiday3)||((today == 1)&&((i-1 == holiday1)||(i-1 == holiday2)||(i-1 == holiday3)))) { cldr += "<font color='"+ color2 +"'>"+ i +"</font>"; // 日曜,金曜の書式,祝祭日の書式 }else { cldr += i; // その他の日の書式 } cldr += "</td>"; }else{ cldr += "<td> </td>"; } } cldr += "</tr>"; } cldr += "</table>"; }document.write(cldr);

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.4

>もう少し、どうするか教えて頂けたら ごめんなさい、私が提示した内容で理解いただけないのであれば どのくらい初心者なのか皆目見当が付きません おそらくかなり初心者なのでしょうから、例題がたくさん載っている ような参考書籍を探して購入し基礎から学習なさるのをお勧めします。 とくに自力でWEB検索するのが困難な場合は、書籍を元にした方が 効率的です。 まだ、この「[技術者向] コンピューター」の掲示板に質問を なさる段階にないと思います。 (なにせ技術者向けですから、初心者という題目は免罪符になりません)

nayamihito
質問者

補足

ご回答ありがとうございます。 javascriptについては全くの初心者です。 持っている参考書もあるのですが理解できていない状況です。 今ついているカレンダーに翌月がついたら良くなるだろうという 軽い気持ちで質問してしまいました。 もう少し時間をかけて頂いた回答の意味がわかるまで 自分で勉強してみます。 [初心者] コンピューターのカテゴリーはないですね。

すると、全ての回答が全文表示されます。
  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.3

> もう少し 翌月のリンクのときに、翌月の年月日を渡してあげてやればいいのよ。 日は1日で十分だわね。 それを受け取ってnew Date()しているところに渡してあげればいいのよ。 今日の判定は改めてnew Date()しないとね ・・・うんぬんかんぬん・・・ > 参考に だったら最初から 前月次月のリンクのある カレンダーを探して北ほうが早いわよ。 ぐぐればすぐ見つかるわ。

nayamihito
質問者

補足

回答ありがとうございます。 ホームページにこのカレンダー載せて 少し経ったので愛着がわいてしまいました。 リンクのついているカレンダーを探して 参考にしてもう少し自分で頑張ってみます。

すると、全ての回答が全文表示されます。
  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.2

まるっと書くのは大変なのでHINTだけ 今日2009年4月8日は new Date(2009,3,9) で取得できるわ。 月だけ-1になるので注意ね。

nayamihito
質問者

補足

早速のご回答ありがとうございます。 javascriptについて全くの初心者なのでまったく 理解できていません。 とりあえずカレンダーが必要でしたので JavaScript訓練所というところのカレンダーを 参考にさせて頂きました。 http://www004.upp.so-net.ne.jp/sekiuchi/js/contents/hcldr3.html もう少し、どうするか教えて頂けたら助かります。 初心者でも理解できるようなページがあれば教えて頂きたいです。

すると、全ての回答が全文表示されます。
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

ちょっと丸投げ過ぎなので、真剣に見てないので正確なことは 言えませんが、なんかうるう年処理とかもなんか中途半端で もう少し効率化できないもんですかねぇ・・・ 実際のところ day = new Date(); で、今日の日付を得ていますから、 day = new Date(); day.setDate(1); day.setMonth(day.getMonth()+1); とすれば、dayは来月の1日になります。 そのへんで処理してみてはどうでしょ?

nayamihito
質問者

補足

早速のご回答ありがとうございます。 javascriptについて全くの初心者なのでまったく 理解できていません。 とりあえずカレンダーが必要でしたので JavaScript訓練所というところのカレンダーを 参考にさせて頂きました。 http://www004.upp.so-net.ne.jp/sekiuchi/js/contents/hcldr3.html もう少し、どうするか教えて頂けたら助かります。 初心者でも理解できるようなページがあれば教えて頂きたいです。

すると、全ての回答が全文表示されます。

関連するQ&A