シンプルカレンダー

function svgmonth($nen,$month,$bx=40,$by=40) {
       $stday = new DateTime($nen.'-'.$month.'-1');
       $stweek = (int)$stday->format('w');  // 1日の曜日
       $days = (int)$stday->format('t'); // 月の日数
       $weeks=array("SUN","MON","TUE","WED","THU","FRI","SAT");
       print "<g transform=\"translate({$bx},{$by})\">\n"; // 月の始まり
        print "<text class=\"mfont c03\" x=\"12\" y=\"0\">{$nen}年{$month}月</text>\n";
       for($i=0;$i<7;$i++) {
               $x = 25*$i+12;
               $w = $weeks[$i];
               print "<text class=\"wfont c03\" x=\"{$x}\" y=\"25\">{$w}</text>\n";
       }

        $wn = 0; // 何週目
        $w = $stweek; //スタートの曜日
        $px = 25*$w; // 日のX座標
        $py = 0;     // 日のY座標
        $c = 1;  // 色
        print "<g transform=\"translate(0,30)\">\n"; // 月の数字の部分の基点
        print "<g transform=\"translate(0,0)\">\n"; // 一週間の基点
        for($i=1;$i<=$days;$i++) {
                $c = ($w==0) ? 3 : 1;
                print <<<LINE1
<g transform="translate({$px},0)"><rect class="c0{$c}" width="22" height="22" rx="4"/>
<text class="dfont" x="12" y="16">{$i}</text></g>\n
LINE1;
                $w++;
                $px += 25;
                if($w>6) {
                        $w = 0;
                        $px = 0;
                        $py +=25;
                        print "</g><g transform=\"translate(0,{$py})\">\n";
                }
        }
        print "</g>\n"; //一週間の終わり
        print "</g>\n"; //月の数字の部分の終わり

       print "</g>\n"; // 月の終わり
}