基礎から解る!PHP入門講座 プログラム入門に最適な言語、PHPを学ぼう

基礎から解る!PHP入門講座

プログラム入門に最適な言語、PHPを学ぼう      

    カレンダー 11−4

    <?php
    error_reporting(1);
    $year = $_COOKIE['year'];
    if($year == null){
      $year = date(Y);
    }
    $month = $_COOKIE['month'];
    if($month == null){
      $month = date(n);
    }

    $move = $_GET['move'];
    switch($move){
      case -5 ;
        $year -= 1000;
        break;
      case -4 ;
        $year -= 100;
        break;
      case -3 ;
        $year -= 10;
        break;
      case -2 ;
        $year -= 1;
        break;
      case -1 ;
        $month -= 1;
        if($month < 1){          /*月が0以下になったときの処理*/
          $month += 12 ;
          $year -= 1;
        }
        break;
      case 0 ;
        $year = date(Y);
        $month = date(n);
        break;
      case 1 ;
        $month += 1;
        if($month > 12){        /*月が13以上になったときの処理*/
          $month -=12;
          $year += 1;
        }
        break;
      case 2 ;
        $year += 1;
        break;
      case 3 ;
        $year += 10;
        break;
      case 4 ;
        $year += 100;
        break;
      case 5 ;
        $year += 1000;
        break;
      case 6 ;
        $year += 1000000;
        break;
    }

    setcookie("year",$year,time()+60*60);
    setcookie("month",$month,time()+60*60);
    ?>

    <!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 }
    .othr { text-align:center;background-color:#ffffee;font-size:11px;color:black;padding:2px }
    </style>

    </head>
    <body><div class="file2" style="height:280px">
    <table><tr><td>
    <?php
    if($year < -4713){
      echo "紀元前4713年以前は表示できません。";
      echo "<a href='".$PHP_SELF."?move=0'>ここをクリック</a> ¥n";
    } else {
    /*--------------------------------------------------カレンダー始まり*/
      echo "<table border='0' width='200' height='182' border='0'><tr><td valign='top' align='center'>";
      echo "<table border ='0' bgcolor='#cccccc' cellspacing='1' cellpadding='3'><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 width='23' class='head_".$hcnt."'>";
        } else {
          echo "<td width='23' 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 {                                          //平日
              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++){        //0以外は・が必要
            echo "<td align='center' class='dot'></td>¥n";
          }
        }
    /*---------------------------------------------------カレンダー終り*/
      echo "</tr></table>¥n";
      echo "</td></tr></table>¥n";
    /*---------------------------------------------------カレンダー移動*/
      echo "</td><td width='50'> </td><td valign='top'>";
      echo "<table width='200' border='0' style='margin-top:0px'><tr><td align='left' style='font-size:12px'>¥n";
      echo "<a href='".$_SERVER["PHP_SELF"]."?move=-5'><b>←</b> 1000年前</a><br> ¥n";
      echo "<a href='".$_SERVER["PHP_SELF"]."?move=-4'><b>←</b> 100年前</a><br> ¥n";
      echo "<a href='".$_SERVER["PHP_SELF"]."?move=-3'><b>←</b> 10年前</a><br> ¥n";
      echo "<a href='".$_SERVER["PHP_SELF"]."?move=-2'><b>←</b> 1年前</a><br> ¥n";
      echo "<a href='".$_SERVER["PHP_SELF"]."?move=-1'>&lt; 1ヶ月前</a><br> ¥n";
      echo "<a href='".$_SERVER["PHP_SELF"]."?move=0'>○ 現在のカレンダー</a><br> ¥n";
      echo "<a href='".$_SERVER["PHP_SELF"]."?move=1'>&gt; 1ヶ月後</a><br> ¥n";
      echo "<a href='".$_SERVER["PHP_SELF"]."?move=2'><b>→</b> 1年後</a><br> ¥n";
      echo "<a href='".$_SERVER["PHP_SELF"]."?move=3'><b>→</b> 10年後</a><br>¥n";
      echo "<a href='".$_SERVER["PHP_SELF"]."?move=4'><b>→</b> 100年後</a><br> ¥n";
      echo "<a href='".$_SERVER["PHP_SELF"]."?move=5'><b>→</b> 1000年後</a><br> ¥n";
      echo "<a href='".$_SERVER["PHP_SELF"]."?move=6'><b>→</b> 100万年後</a><br> ¥n";
      echo "</td></tr></table>¥n";
    }
    ?>


    </td></tr></table><br><br>
    紀元前4713年以降、西暦100兆年頃!!までのカレンダーが表示できます。
    </div></body></html>
    2019/9
    SUN MON TUE WED THU FRI SAT
    1 2 3 4 5 6 7
    8 9 10 11 12 13 14
    15 16 17 18 19 20 21
    22 23 24 25 26 27 28
    29 30      


     フォクすけ©2006 Mozilla Japan



    制作:基礎から解るPHP入門講座 代表:FREEZE

    Copyright © 2005/2/28 flzPHP.All Rights Riserved