• 締切済み

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

このカレンダーの年月日の横に翌月へを追加したいのですが やり方がわかりません。 翌月へをクリックすると翌月のカレンダーに変わるようにしたいです。 どなたかよろしくお願いします。 // 表示月数(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

  • PHPによるカレンダーについて

    PHPでカレンダーを作成しています。 プルダウンで年月を指定し、更新ボタンを押せば、指定した年月のカレンダーを表示させたいのですが、うまくいきません。 更新ボタンを押してもカレンダーが変わらないです。 KOMOカレンダーというサイトを参考にして、文字コードを変えただけです。 教えてくださる方がいらっしゃいましたら宜しくお願いいたします。 <?php $last_year = 2037; $wday_color = "#000000"; $sat_color = "#0000ff"; $sun_color = "#ff0000"; $reg_color = "#ffccff"; $year = (!isset($year)) ? date("Y") : $year; $month = (!isset($month)) ? date("n") : $month; ?> <HTML> <HEAD> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <TITLE>カレンダー</TITLE> </HEAD> <BODY> <P><FONT SIZE="6" COLOR="#006600">カレンダー</FONT></P> <P> <TABLE BORDER="1"CELLSPACING="1" CELLPADDING="1"> <TR> <TD COLSPAN="7"> <SELECT NAME="year"> <?php for($i = 2002; $i <= $last_year; $i++){ echo "<option value=".$i.(($i == $year) ? ' selected':'').">".$i."年\n"; } ?> </SELECT> <SELECT NAME="month"> <?php for($i = 1; $i <= 12; $i++){ echo "<option value=" . $i . (($i == $month) ? ' selected':'').">".$i."月\n"; } ?> </SELECT> <INPUT TYPE="SUBMIT" NAME="Submit" VALUE="更新"></TD> </TR> <TR> <TD> <P ALIGN="CENTER"><FONT COLOR="red">日</FONT> </TD> <TD> <P ALIGN="CENTER">月 </TD> <TD> <P ALIGN="CENTER">火 </TD> <TD> <P ALIGN="CENTER">水 </TD> <TD> <P ALIGN="CENTER">木 </TD> <TD> <P ALIGN="CENTER">金 </TD> <TD> <P ALIGN="CENTER"><FONT COLOR="blue">土</FONT> </TD> </TR> <?php $time = mktime(0, 0, 0, $month, 1, $year); $day_of_first = date("w", $time); $date_of_month = date("t", $time); $week_of_month = ceil($date_of_month / 7); if(($date_of_month % 7 > 7 - $day_of_first) || ($date_of_month % 7 == 0 && $day_of_first != 0)){ $week_of_month++; } for($i = 1; $i <= $week_of_month * 7; $i++){ if($i % 7 == 1){ echo "<tr>"; } if(($i - 1 < $day_of_first) || ($i > $date_of_month + $day_of_first)){ echo "<td>&nbsp;</td>"; }else{ if($i % 7 == 1){ $color = $sun_color; }elseif($i % 7 == 0){ $color = $sat_color; }else{ $color = $wday_color; } echo "<td width=30 height=30 align=right valign=top>"; echo "<font color=" . $color . ">"; echo $i - $day_of_first; echo "</font></td>"; } if($i % 7 == 0){ echo "</tr>\n"; } } ?> </TABLE> </FORM> </BODY> </HTML>

    • ベストアンサー
    • PHP
  • カレンダーについて教えてください。

    phpでカレンダーを作っているのですが休日を設定したい場合 の方法がわかりません。 for文で日にちを表示させているのですが休日設定の配列の値を どのように参照すればいいかで悩んでおります。 // 現在の日付を取得 $year = date("Y"); $month = date("n"); $today = date("j"); // 休日を設定 $holyday = array('1', '5', '12', '28'); // カレンダー始まり echo "<table width='200' height='182' border='0'><tr><td valign='top'>"; echo "<table border ='0' bgcolor='#cccccc' cellspacing='1' cellpadding='3' width='170'><tr>\n"; echo "<td colspan='7' bgcolor='white' align='center' style='font-size:12px;font-weight:bold;color:#6666ff'>"; echo $year . "年" . $month . "月</td><tr>"; // 曜日表示部分 $weekday = array('Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'); for ($i = 0 ; $i < 7 ; $i++) { if ($i == 0 or $i == 6) { echo "<td class='head_" . $i . "'>"; } else { echo "<td class='head'>"; } echo $weekday[$i] . "</td>\n"; } echo "</tr>\n"; // 日数と曜日の計算 $days = cal_days_in_month (CAL_GREGORIAN, $month, $year); $week_start = jddayofweek (cal_to_jd(CAL_GREGORIAN, $month,1, $year) , 0); // 日付が始まる前の空白 for ($dot1 = 0 ; $dot1 < $week_start ; $dot1++) { echo "<td align='center' class='dot'></td>\n"; } // 日付表示部分 for ($day = 1 ; $day <= $days ; $day++) { if (($day+$week_start)%7 == 1) { // 日曜日 echo "<tr>\n<td class='sun'>$day</td>\n"; } else if (($day+$week_start)%7 == 0) { // 土曜日 echo "<td class='sat'>$day</td>\n</tr>\n"; } else if ($day == $today) { // 今日 echo "<td class = 'today'>$day</td>\n"; // ここで休日を表示させるのですが方法がわかりません。 } else if ($day == $holyday[0]) { // 休日 echo "<td class = 'holyday'>$day</td>\n"; } else { // 平日 echo "<td class='othr'>$day</td>\n"; } } // 最終日後の空欄の表示 $wend = 35 - ($days + $week_start); if ($wend < 0) { $wend += 7; } if ($wend == 7) { echo ''; } else if ($wend != 0) { for ($dot2 =0 ; $dot2 < $wend ;$dot2++) { echo "<td align='center' class='dot'></td>\n"; } } // カレンダー終り echo "</tr></table>\n"; echo "</td></tr></table>\n";

    • ベストアンサー
    • PHP
  • 万年カレンダーについて

    万年カレンダーについて質問します。例えば、11月10日(月)が休みとした場合に11月10日(月)セルの背景を赤色にする方法を教えて下さい。下記のプログラムに加える記述方法を教えて下さい。 <?php if($_GET['num']==''){ $today_year =date("Y"); $today_month=date("n"); }else{ $timestamp=mktime(0,0,0,date("n")+$_GET['num'],date("d"),date("Y")); $today_year =date("Y",$timestamp); $today_month=date("n",$timestamp); } $current=mktime(0,0,0,$today_month,1,$today_year); $first_day=date("w",$current); $last_day=date("t",$current); ?> <html> <head> <title>万年カレンダ</title> </head> <body> <h1 style="background:#cccccc"> <?php print(date("Y年m月",$current)); ?>のカレンダ</h1> <table border="1" width="300"> <tr> <th>日</th><th>月</th><th>火</th><th>水</th> <th>木</th><th>金</th><th>土</th> </tr> <?php for($i=1;$i<=$first_day+$last_day;$i++){ if($i%7==1){print("<tr>"); } if($i>$first_day){ print("<td>".($i-$first_day)."</td>"); }else{ print("<td>&nbsp;</td>"); } if($i%7==0){print("</tr>");} } ?> </table> </body> </html>

    • ベストアンサー
    • PHP
  • カレンダーの今日の日付をハイライトする。

    <?php $year = $_POST['year']; if($year == null){ $year = date(Y); } $month = $_POST['month']; if($month == null){ $month = date(n); } $today = $_POST['today']; if($today == null){ $today = date(j); } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html lang="ja"><head> <meta http-equiv="Content-type" content="text/html; charset=EUC-JP"> <meta http-equiv="Content-Style-Type" content="text/css"> <link rel="stylesheet" href="../style.css"> <style type="text/css"> .dot { text-align:center;background-color:#ffffff;font-size:11px;color:black;padding:2px;height:21px } .head_0 { text-align:center;background-color:#ffeeee;font-size:11px;color:red;padding:2px } .head_6 { text-align:center;background-color:#eeffd0;font-size:11px;color:blue;padding:2px } .head { text-align:center;background-color:#ffffee;font-size:11px;color:black;padding:2px } .sun { text-align:center;background-color:#ffeeee;font-size:11px;color:red;padding:2px;height:21px } .sat { text-align:center;background-color:#eeffd0;font-size:11px;color:blue;padding:2px } .today { text-align:center;background-color:#ffcc00;font-size:11px;color:blue;padding:2px } .othr { text-align:center;background-color:#ffffee;font-size:11px;color:black;padding:2px } </style></head> <body><div class="file2" style="height:280px"> <form method = "POST" action = PHP061.php> <?php ///////////////////////////////////////////////////////////////////////カレンダー始まり echo "<table width='200' height='182' border='0'><tr><td valign='top'>"; echo "<table border ='0' bgcolor='#cccccc' cellspacing='1' cellpadding='3' width='170'><tr>\n"; echo "<td colspan='7' bgcolor='white' align='center' style='font-size:12px;font-weight:bold;color:#6666ff'>"; echo $year."年".$month."月</td><tr>"; ////////////////////////////////////////////////////////////////////////曜日表示部分 $weekday = array("SUN","MON","TUE","WED","THU","FRI","SAT"); for($hcnt = 0 ; $hcnt<7 ; $hcnt++){ if($hcnt == 0 or $hcnt == 6){ echo "<td class='head_".$hcnt."'>"; } else { echo "<td class='head'>"; } echo $weekday[$hcnt]."</td>\n"; } echo "</tr>\n"; ////////日数と曜日の計算 $days = cal_days_in_month ( CAL_GREGORIAN, $month, $year ); $week_start = jddayofweek ( cal_to_jd(CAL_GREGORIAN, $month,1, $year) , 0 ); ////////日付が始まる前の空白 for($dot1 = 0 ; $dot1 < $week_start ; $dot1++){ echo "<td align='center' class='dot'></td>\n"; } //////////日付表示部分 for( $day = 1 ; $day <= $days ; $day++ ){ if(($day+$week_start)%7 == 1){ //日曜日 echo "<tr>\n<td class='sun'>$day</td>\n"; } else if(($day+$week_start)%7 == 0){ //土曜日 echo "<td class='sat'>$day</td>\n</tr>\n"; } else if($day == $today){ echo "<td class = 'today'>$day</td>\n"; } else { //平日 echo "<td class='othr'>$day</td>\n"; } } //////////最終日後の空欄の表示 $wend = 35 - ($days + $week_start) ; if($wend < 0){ $wend += 7; } if($wend == 7){ echo ""; //この行はなくてもよい } else if($wend != 0){ for($dot2 =0 ; $dot2 < $wend ;$dot2++){ echo "<td align='center' class='dot'></td>\n"; } } /////////カレンダー終り echo "</tr></table>\n"; echo "</td></tr></table>\n"; ?> <br><br> </div> </form> </body> </html> 上記のソースでカレンダー表示は行えます。 しかし、今日の日付をハイライトすることができません。。 どなたかご存知の方、いらっしゃらないでしょうか? お願いします。

    • ベストアンサー
    • PHP
  • PHPでカレンダー

    PHPを使ってカレンダーを作成しました。が、コードの意味が良く分かりません。 コードは以下の通りです。 <?php if($_GET['num']==''){ $today_year = date("Y"); //4桁の西暦年 $today_month = date("n"); //1~12の月 }else{ $timestamp = mktime(0,0,0,date("n")+$_GET['num'],date("d"),date("Y")); $today_year = date("Y",$timestamp); $today_month = date("n",$timestamp); //1~12月 } $current = mktime(0,0,0,$today_month,1,$today_year); $first_day = date("w",$current); //1日の曜日を0~6に当てはめる $last_day= date("t",$current); //月の日数 ?> <html> <head> <title>カンレンダー</title> <meta http-equiv="Content-Type" content="text/html; charset=euc-jp"> </head> <body> <h1><?php print (date("Y年m月",$current)); ?>のカレンダー</h1> <table border="1" cellpadding="0" cellspacing="2"> <tr> <th>日</th><th>月</th><th>火</th><th>水</th><th>木</th><th>金</th><th>土</th> </tr> <?php for($i=1; $i<=$first_day+$last_day; $i++){ if($i%7==1){print ("<tr>");} if($i>$first_day){ print ("<td>".($i-$first_day)."</td>"); }else{ print ("<td>&nbsp;</td>"); } if($i%7==0){print ("</tr>");} } ?> </table> </body> </html> for以降の部分が良く分かりません。よろしくお願いします。※上記のスクリプトで正しく表示されることは確認済です。

    • 締切済み
    • PHP
  • カレンダー作りをしてるのですが・・・

    うまく表示されずデバッグでアラートをいれて調べてみたらアラート18(<!-- carenda() //--> のところで落ちてしまいました。 カレンダーのソースはネットで調べて、ソースをみながらいじくって書いたのですが 自分にもわかんない部分でプログラムが落ちてしまいました。 助言よろしくお願いします。 <!-- カレンダーの表示 --!> <HTML> <HEAD> <script type="text/javascript"> <!-- alert("13"); --> </script> <INPUT type="submit" value="LOGIN"/>. <form name="LOGIN" method="post" action="/cgi-bin/Login.cgi"></form> <script type="text/javascript"> <!-- alert("14"); function defTD(str, iro){ return "<TD align='center'><B><FONT size='-2' color='" + iro + "'>" + str + "</FONT></B></TD>"; } function carenda(){ var now = new Date(); var year = now.getFullYear(); var month = now.getMonth()+1; var date = now.getDate(); var day = now.getDay(); var last_date = new Array(31,28,31,30,31,30,31,31,30,31,30,31); if(month==2){ if(year%4==0){ if((year%100==0) && (year%400!=0)){ }else{ last_date[1] = 29; } } } document.writeln("<TABLE border=0 cellspacing=3><TR><TD colspan='7' align='center'><B><U><FONT size='-1'>" + year + "年" + month + "月</FONT></B></U></TD></TR>"); alert("15"); document.writeln("<TR>" + defTD("日","red") + defTD("月","black") + defTD("火","black") + defTD("水","black") + defTD("木","black") + defTD("金","black") + defTD("土","blue") + "</TR>"); document.write("<TR>"); for(dayIndex=0; dayIndex<(new Date(year,month-1,1)).getDay(); dayIndex++) { document.write(defTD("&nbsp;","white")); } /* alert("16"); for(i=1; i<=last_date[month-1]; i++){ if(i!=1 && dayIndex == 0) { document.write("<TR>"); } if(i==date){ document.write(defTD(i,"orange")); }else{ switch(dayIndex){ case 0: document.write(defTD(i,"red")); break; //28日がある日にテキストを挿入する。 //土曜日がある日にテキストを挿入する場合。 case 6: document.write(defTD(i,"blue")); document.writeln("</TR>"); //週の終りのタイミングで行う document.write("<TR>"); for(j=0;j<7;j++){ document.write("<TD>"<input='text'>"</TD>"); } document.writeln("</TR>"); //ここまで break; default: document.write(defTD(i,"black")); break; } } dayIndex++; dayIndex%=7; } */ } //--> </script> <script type="text/javascript"> <!-- alert("17"); --> </SCRIPT> </HEAD> <BODY> <TABLE border=2 cellspacing=1><TR><TD> <SCRIPT type="text/JavaScript"> alert("18"); <!-- carenda(); //--> alert("19"); </SCRIPT> </TD></TR> </TABLE> </BODY> </HTML> <!-- カレンダー終了 --!>

  • HPにカレンダーを設置したいのですが…。

    HP用に小さなカレンダーを設置したいと考え フリーで使えるJavaスクリプトのカレンダーをダウンロードしたのですが 下記のスクリプトファイルをhtmlに直接組み込まずに、 外部のファイルから読み込ませる方法はないでしょうか? 宜しくお願いします。 ------------------------------------------ <script> // カレンダーの枠の色 cal_bd = "#ffffff"; // カレンダーの文字色 cal_tx = "#636363"; // カレンダーの背景色 cal_bg = "#ffffff"; // 土曜日の色 sat_col = "#0000fd"; // 日曜日の色 sun_col = "#ff0100"; // 本日の文字色 tdy_tx = "#ffffff"; // 本日の背景色 tdy_col = "#ae2e23"; // 過去未来の表示可能年数(10なら10年前から10年後まで) noy = 10; // 月 mnname = new Array('1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月'); // 曜日 wdname = new Array('Sun','Mon','Tue','Wed','Thu','Fri','Sat'); buffer = document.location.search; buffer = buffer.replace("?",""); buffer = buffer.split("&"); query = new Array(); for (i in buffer) { buf = buffer[i].split("="); query[buf[0]] = buf[1]; } if (query['year'] && query['mon']) { y = eval(query['year']); m = eval(query['mon']) - 1; target = new Date(y,m); d = new Date(); nowyear = d.getYear(); nowmon = d.getMonth(); nowdate = d.getDate(); } else { target = new Date(); nowyear = target.getYear(); nowmon = target.getMonth(); nowdate = target.getDate(); } year = target.getYear(); mon = target.getMonth(); if (nowyear < 1900) nowyear += 1900; if (year < 1900) year += 1900; for (i = 28; i <= 31; i++) { ldate = new Date(year,mon,i); if (ldate.getMonth() == mon) ld = i; } fd = new Date(year,mon,1); fwday = fd.getDay(); ldate = new Date(year,mon,ld); lwday = ldate.getDay(); day = 1 - fwday; CAL = "<table><form><td align=center>"; CAL += "<table bgcolor=" + cal_bd + " border=0 cellpadding=0 cellspacing=0><td>"; CAL += "<table border=0 cellspacing=1>"; CAL += "<tr bgcolor=" + cal_bg + "><th colspan=7>"; CAL += "<select name=year class=mon>"; for (i = nowyear - noy; i <= nowyear + noy; i ++) if (i == year) CAL += "<option value=" + i + " selected>" + i; else CAL += "<option value=" + i + ">" + i; CAL += "</select><select name=mon class=mon>"; for (i = 1; i <= 12; i ++) if (i == mon + 1) CAL += "<option value=" + i + " selected>" + mnname[i-1]; else CAL += "<option value=" + i + ">" + mnname[i-1]; CAL += "</select> <input type=submit value='Set'>"; CAL += "</th></tr>"; CAL += "<tr bgcolor=" + cal_bg + ">"; for (i in wdname) { if (i == 0) wdname[i] = wdname[i].fontcolor(sun_col); else if (i == 6) wdname[i] = wdname[i].fontcolor(sat_col); else wdname[i] = wdname[i].fontcolor(cal_tx); CAL += "<td align=center class=wday><tt>" + wdname[i] + "</tt></td>"; } CAL += "</tr>"; while (day <= ld) { CAL += "<tr bgcolor=" + cal_bg + ">"; for (i = 0; i < 7; i ++) { if (day < 1 || day > ld) CAL += "<td><br></td>"; else { if (year == nowyear && mon == nowmon && day == nowdate) { CAL += "<td bgcolor=" + tdy_col + " align=right class=date>"; CAL += String(day).fontcolor(tdy_tx); } else { CAL += "<td align=right class=date>"; if (i == 0) CAL += String(day).fontcolor(sun_col); else if (i == 6) CAL += String(day).fontcolor(sat_col); else CAL += String(day).fontcolor(cal_tx); } CAL += "</td>"; } day ++; } CAL += "</tr>"; } CAL += "</table></td></table></td></form></table>"; document.write(CAL); </script>

  • PHPでカレンダーを作成するにあたって(祝日)の出力

    PHP初心者です。 勉強をかねて、PHPでカレンダーを作成しています。 カレンダー自体は作成できたと思うのですが、祝日も考慮したいので、どうコーディングすれば良いでしょうか? カレンダーは下記のように作成致しました。 <html> <head> <title>カレンダー</title> <link rel= "stylesheet" href="ookawa.css" type="text/css"> </head> <body> <table> <th colspan="7"><font size="+1"> <?php echo date("Y"); ?> <?php echo "/"; ?> <?php echo date("m"); ?> </font><font size="+1"></font></th> <tr> <td><font size="-1">日</font></td> <td><font size="-1">月</font></td> <td><font size="-1">火</font></td> <td><font size="-1">水</font></td> <td><font size="-1">木</font></td> <td><font size="-1">金</font></td> <td><font size="-1">土</font></td> </tr> <?php //当月の1日の曜日 $startwday = date("w", mktime(0, 0, 0, date("n"), 1, date("Y"))); //当月の最後の曜日 $endmday = date("t"); //当月の1日までの空欄 for($i = 0 ; $i < $startwday ; $i++) { if(($count % 7) == 0) { echo "<tr>"; } echo "<td> </td>"; $count++; } //●日付の書き込み for($i = 1 ; $i <= $endmday ; $i++) { if(($count % 7) == 0) { echo "<tr>"; } if($i == date("j")) { //☆本日の場合、背景色を黄色にする☆ echo "<td bgcolor=\"FFFF00\">"; } else { echo "<td align=\"center\ bgcolor=\"FFFF00\">"; } if(($count % 7) == 0) { //☆日曜日の場合、文字色を赤色にする☆ echo "<font color=\"red\">"; } elseif(($count % 7) == 6) { //☆土曜日の場合、文字色を青色にする☆ echo "<font color=\"blue\">"; } echo "$i"; if(($count % 7) == 0 or ($count % 7) == 6) { echo "</font>"; } echo "</td>"; $count++; if(($count % 7) == 0) { echo "</tr>\n"; } } //当月の最終日以降の空欄 for( ; ($count % 7) != 0 ; ) { echo "<td> </td>"; $count++; if(($count % 7) == 0) { echo "</tr>\n"; } } ?> </table> </body> </html> アドバイスを宜しくお願い致します。

    • 締切済み
    • PHP
  • 該当日のスケジュール内容を別ウィンドウで表示したいのですが…。

    初めて質問させて頂きます。 プログラム初心者です。 今、課題でカレンダー作成(予定を表示させる)をしています。 現在の時点でカレンダーの指定日(予定のある日)にリンクをつけるところまでは出来たのですが、リンク先に移動した際に該当日の予定を表示させるのが出来なくて困っています。 (予定はCSVファイルからuploadしています。) どなたかお力を貸して頂けませんでしょうか??…orz。 宜しくお願いします。 ソースはこちらです。 …読みにくくてすみません(泣 <html> <head> <meta http-tquiv="Content-Type" content="text/html;charset=EUC-JP"> <title>カレンダー</title> </head> <form name="skl" method="post" action="yotei.php"> <body> <?php  $year = date("Y");  $month = date("n");  $day = date("j");  $year2=$_GET["year"];  $month2=$_GET["month"];  $day2=$_GET["day"]; //先月、来月をクリックした場合の処理  if($year2!="" || $month2!="" || $day2!="") {   if($year2!="") {    $year = $year2;   }   if($month2!="") {    $month = $month2;   }   if($day2!="") {    $day = $day2;   }else {    $day = 1;   }  } // カレンダー表示(先月の場合)  if($month==1) {   $year3 = $year-1;   $month3 = 12;  }else {   $year3 = $year;   $month3 = $month-1;  } // カレンダー表示(来月の場合)  if($month==12) {   $year4 = $year+1;   $month4 = 1;  }else {   $year4 = $year;   $month4 = $month+1;  } // テーブルの作成  print "<tableborder='1'><tr>";  print "<td width='250' align='center' bgcolor='yellowgreen' colspan='7'>";  print "<a href=\"?year=$year3&month=$month3\"><<</a>";  print " ".$year."年".$month."月のカレンダー ";  print "<a href=\"?year=$year4&month=$month4\">>></a></td></tr>";  print "<tr><td align='center' bgcolor='pink'>日</td>";  print "<td align='center' bgcolor='silver'>月</td>";  print "<td align='center' bgcolor='silver'>火</td>";  print "<td align='center' bgcolor='silver'>水</td>";  print "<td align='center' bgcolor='silver'>木</td>";  print "<td align='center' bgcolor='silver'>金</td>";  print "<td align='center' bgcolor='skyblue'>土</td></tr>";  $week = date(w,mktime(0,0,0,$month,1,$year));  for ($ix1 = 0 ; $ix1 < $week ; $ix1++) {   print "<td align='center'>-</td>";  } // ファイルの読み込み  $data = "date- data.CSV";  $file = fopen($data,"r");  while(!feof($file)){   $csv = fgets($file);   $csv = mb_convert_encoding($csv, "EUC-JP", "SHIFT-JIS"); //csvファイルを配列に格納   $str = explode(",", $csv);   for($day = 1 ; checkdate ($month,$day,$year) ; $day++) {    if($str[1] == "$year/$month/$day") {     $ymd[] = $str[1];    }   }  }  for($day = 1 ; checkdate ($month,$day,$year) ; $day++) {   print "<td align='center'";   if(($day+$week)%7 == 1 ) {    print "bgcolor='pink'><font color='red'>";   }else if(($day+$week)%7 == 0 ) {    print "bgcolor='skyblue'><font color='blue'>";   }else {    print "bgcolor='wheat'>";   }   for($i=0 ; $i<count($ymd) ; $i++) {    if($ymd[$i] == "$year/$month/$day") {     print "<a href=yotei.php>";    }   }   print "$day</td>";   if(($day+$week)%7 == 0 ) {    print "</tr>";   }  }  fclose($file);  $weekend = date(w,mktime(0,0,0,$month,$day,$year));  for ($ix2=0 ; $ix2<(7-$weekend) ; $ix2++) {   if ($weekend != 0) {    print "<td align='center'>-</td>";   }  }  print "</tr>";  print "</table>"; ?> <table border='0'> <tr> <td width="250"> <div align="center"> <input type="button" value="ファイル参照画面へ戻る" onClick="location.href='upload.php'" name="button"> </div> </td> </tr> </table> <br><br> </body> </form> </html>

    • 締切済み
    • PHP
  • PHP カレンダー

    php初心者です。HTMLにカレンダーのソースを、そのまま下記のHPから埋め込んだのですが、表示されません。なぜでしょうか? http://shanabrian.com/web/php_calendar.php --------------HTML <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>index</title> <link href="style.css" rel="stylesheet" type="text/css" /> </head> <body> <?php function calendar($year, $month) { //月末 $l_day = date("j", mktime(0, 0, 0, $month + 1, 0, $year)); //初期出力 $tmp = <<<EOM <table cellspacing="0" cellpadding="0" border="0" class="calendar"> <caption>{$year}年{$month}月</caption> <tr> <th class="red">日</th> <th>月</th> <th>火</th> <th>水</th> <th>木</th> <th>金</th> <th class="blue">土</th> </tr>\n EOM; //月末分繰り返す for ($i = 1; $i < $l_day + 1;$i++) { //曜日の取得 $week = date("w", mktime(0, 0, 0, $month, $i, $year)); //曜日が日曜日の場合 if ($week == 0) { $tmp .= " <tr>\n"; } //1日の場合 if ($i == 1) { $tmp .= str_repeat(" <td>&nbsp;</td>\n", $week); } if ($i == date("j") && $year == date("Y") && $month == date("n")) { //現在の日付の場合 $tmp .= " <td class=\"today\">{$i}</td>\n"; } else { //現在の日付ではない場合 $tmp .= " <td>{$i}</td>\n"; } //月末の場合 if ($i == $l_day) { $tmp .= str_repeat(" <td>&nbsp;</td>\n", 6 - $week); } //土曜日の場合 if($week == 6) { $tmp .= " </tr>\n"; } } $tmp .= "</table?>\n"; return $tmp; } ?> <?= calendar(date("Y"), date("n")) ?> </body> </html> ---------------------CSS table.calendar { border-collapse:collapse; border:1px #666 solid; text-align:center; font-size:12px; } table.calendar td, table.calendar th { padding:5px; border:1px #666 solid; } table.calendar th { background:#eee; } table.calendar td.today { background:#999; color:#fff; } table.calendar .red { color:#f33; } table.calendar .blue { color:#33f; }

    • ベストアンサー
    • PHP