
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>
アドバイスを宜しくお願い致します。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
私が作ったときは、休日は別ファイルにして祝日を登録していました。
No.1さんも書いているように祝日は法律で変わるので、その度にプログラムを修正するよりは休日ファイルを作って、それを修正するようにしたほうが楽です。
それと、上のプログラムで抜けていると思うのは、
1.土曜日と祝日が重なった時の色の処理
2.日曜日と祝日が重なった時の振り替え処理
この回答への補足
回答ありがとうございます。
早速申し訳ないのですが…。
休日は別ファイルにして祝日を登録というのは、具体的にどのようにやれば良いでしょうか?
又、上記のソースは知り合いのソースを参考にさせて頂いて作成した物なんですが、タグに関しても理解できていない部分があるのですが、上記のソースの echo "<tr>"; とあるのですが、echoはブラウザに表示させる命令だと思うのですが"<tr>";とは具体的に何をしているのでしょうか?
HTMLタグについてのサイトを見ているのですが、いまいちピントこないので、困っています…。
どうぞ宜しくお願い致します。
No.2
- 回答日時:
自分自身が仕事で作ったときには祝日はテキストベースのデータファイルを作って管理した。
(ただし春分と秋分は計算ででるので計算させた)
祝日タイプとしては
・日付固定の物
・第○週の△曜日
ってタイプ
それと考慮するべきなのは
・日曜が祝日の場合の振り替え処理
(この場合、ゴールデンウィークのようなときには日曜日も月曜日も祝日だった場合には火曜日が振り替えになる処理)
・後は祝日に一日だけ挟まれた場合にはその中日は国民の祝になるんだっけ。(俺が作ったのはここの処理はやってない。)
No.1
- 回答日時:
祝日なんて法律でちょくちょくかわるもんだし、手でメンテする
しかないでしょう。
過去未来10年ぶんくらいの祝日データを配列にいれておいて
in_array()あたりでチェックすればよいと思いますよ
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS テーブルタグのセルの幅の一部だけを指定 1 2023/03/12 12:02
- PHP htmlで複数の個数入力欄を表示させるには 1 2022/09/20 03:11
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- Visual Basic(VBA) Selenium.ChromeDriverの使い方について 7 2022/09/22 06:43
- PHP アンドロイドスマホでのphp echoの文字サイズ 1 2023/05/13 15:15
- MySQL SQL任意に並び替えをしたい 2 2023/08/28 10:47
- HTML・CSS アコーディオンメニューが思うように動作しません。 1 2023/08/20 16:48
- HTML・CSS ヘッダーの画像にメインエリアがかぶってしまいます 1 2022/11/28 14:06
- HTML・CSS cssの display: flex;で横並びにならずに困ってます 1 2022/12/04 13:18
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Dosブロンプトでtabを出力したい
-
バッチファイルでpingの結果を...
-
shシェルスクリプト 空白行の...
-
findstrのerrorlevel
-
Parse error というエラーの対...
-
RSSにdiv,ul classを付けたいの...
-
batファイルでPC名称の変更
-
ゼロとNULLを区別して number_f...
-
phpでcookieがうまく保存されない
-
csvの特定のキーワードを指定し...
-
PHP .csvの取り込み後、表の列...
-
switch()文で値の大小比較
-
小数点以下0の非表示
-
バッチファイルで、全てのウィ...
-
syntax error, unexpected 'ech...
-
PHP一覧表示した項目にリンクを...
-
PHPで訪問回数を表示するカウン...
-
DBのハッシュ化したパスワード...
-
ナベアツプログラム(3の倍数...
-
Windowsのsetコマンドでの小数...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Dosブロンプトでtabを出力したい
-
バッチファイルでpingの結果を...
-
shシェルスクリプト 空白行の...
-
switch()文で値の大小比較
-
findstrのerrorlevel
-
小数点以下0の非表示
-
syntax error, unexpected 'ech...
-
pdftkを使った処理をバッチファ...
-
phpでcookieがうまく保存されない
-
コマンドプロンプト フォルダ内...
-
XMLのタグの有無をPHPで判定し...
-
ゼロとNULLを区別して number_f...
-
バッチファイルで、全てのウィ...
-
DBのハッシュ化したパスワード...
-
Windowsのsetコマンドでの小数...
-
オブジェクトの中身の判定(PHP)
-
bashの関数の引数にスペースが...
-
訪問回数で表示するFLASHを変える
-
batファイルでPC名称の変更
-
print と echo の違い
おすすめ情報