dポイントプレゼントキャンペーン実施中!

このカレンダーの年月日の横に翌月へを追加したいのですが
やり方がわかりません。
翌月へをクリックすると翌月のカレンダーに変わるようにしたいです。
どなたかよろしくお願いします。

// 表示月数(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);

A 回答 (4件)

>もう少し、どうするか教えて頂けたら



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

この回答への補足

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

補足日時:2009/04/09 11:01
    • good
    • 0

> もう少し


翌月のリンクのときに、翌月の年月日を渡してあげてやればいいのよ。
日は1日で十分だわね。
それを受け取ってnew Date()しているところに渡してあげればいいのよ。
今日の判定は改めてnew Date()しないとね
・・・うんぬんかんぬん・・・

> 参考に
だったら最初から
前月次月のリンクのある
カレンダーを探して北ほうが早いわよ。
ぐぐればすぐ見つかるわ。

この回答への補足

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

補足日時:2009/04/09 10:58
    • good
    • 0

まるっと書くのは大変なのでHINTだけ


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

この回答への補足

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

補足日時:2009/04/08 18:40
    • good
    • 0

ちょっと丸投げ過ぎなので、真剣に見てないので正確なことは


言えませんが、なんかうるう年処理とかもなんか中途半端で
もう少し効率化できないもんですかねぇ・・・

実際のところ
day = new Date();
で、今日の日付を得ていますから、

day = new Date();
day.setDate(1);
day.setMonth(day.getMonth()+1);

とすれば、dayは来月の1日になります。
そのへんで処理してみてはどうでしょ?

この回答への補足

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

補足日時:2009/04/08 18:31
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!