• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHPでカレンダーを作成する際の計算がわかりません)

PHPでカレンダーを作成する際の計算がわかりません

このQ&Aのポイント
  • PHPを勉強し始めた初心者です。参考書を片手にカレンダーを作成しているのですが、その参考書に記載されている計算の意味がわかりません。
  • 具体的には、「for ($i = 0; $i <= 5; $i++)」と「$d = $i * 7 + $j - $wd1 + 1;」の部分です。なぜ5回ループしているのか、また計算式の詳細も知りたいです。
  • この部分の計算式は、カレンダーの行と列を表示するためのものです。$iは行を表し、0から5までの6回繰り返します。$jは列を表し、0から6までの7回繰り返します。$dの計算式は、指定された月の1日から始まり、最終日までの日数を表します。

質問者が選んだベストアンサー

  • ベストアンサー
  • mtaka2
  • ベストアンサー率73% (867/1179)
回答No.1

>なぜ5なのか 0~5で6回ループなのは、カレンダーの縦は最大で6行だからです。 土曜日が1日の場合、1行目は1日だけ 2行目は2日~8日、3行目は9日~15日、4行目は16日~22日、5行目は23日~29日で、6行目に30日・31日がきます。 あとは、行$i、列$jが何日に なるかを計算しているのが、 > $d = $i * 7 + $j - $wd1 + 1; です。 $wd1は、1日の曜日を表す数が入ってますが、 1行目($i=0)の時を考えてみてください。、 $jと$wd1が等しい時、$dが1になります。 つまり、1行$wd1列目が1になって、そこから右に数が増えるような値を計算しているのです。 2行目以降は、上の行より7づつ増えていきます。

noname#102548
質問者

お礼

ありがとうございます。 参考書の著者より詳しい説明でした。 とてもわかりやすかったです。

関連するQ&A