プログラミングの初心者です。
大学の課題でアクセスした日の一週間の日付を表示させるプログラムを組む課題が出ました。
例えばアクセスした日が13日、月曜なら
日 月 火 水 木 金 土
12 13 14 15 16 17 18と表示されるようにしたいのですが…
一週間、調べたり考えたりしたのですが全く分からず途方にくれています。
(言い訳)大学には春に編入し通っています。
今までプログラミングを全く組んだことがないのですが必修科目なので講義を受けています。
今月から始まったのですが一回目を受けて留年を本気で考えました。
講義中にも課題が出たのですがそれはなんとかサンプルやネットを使って
時間ギリギリになんとか組むことが出来ましたがこの課題は全くわかりません…
本音を言えば答えを教えて欲しいのですがヒントでもいいので教えていただけないでしょうか?
それと文字の色の変え方と太さの変え方も教えて欲しいのですが…
おそらくどちらも超初歩な質問だと思うのですが教えていただけないでしょうか?
No.2ベストアンサー
- 回答日時:
現在の日付や曜日を取得する関数 date()
http://jp.php.net/manual/ja/function.date.php
日付を UNIX のタイムスタンプとして取得するmktime()
http://jp.php.net/manual/ja/function.mktime.php
現在の日付と曜日を取得できますので、現在の曜日さえ分かれば後は計算すれば簡単ですね
今日の日付を基に、今週の日曜日は何日か求める
日曜日を0として、0~6までの7回繰り返して表示
色はPHPではなく、HTMLの領域になります
--------------------------
$today_week_jp = array("日","月","火","水","木","金","土");//日本語名を設定
$today_week_color = array("red","black","black","black","black","black","blue");//各曜日で色を指定
$sunday = date("j" , mktime(0, 0, 0, 0, date("d")-date("w"), date("Y")) );//今日の日付を基に、今週の日曜日は何日か求める
for($i=0; $i<=6; $i++){
$weekday = $sunday + $i;
echo '<font color="'.$today_week_color[$i].'">'.$today_week_jp[$i].$weekday."</font><br />"; //表示
}
-------------------------------
これがベストな書き方ではありません
もっと効率よく、汎用性の高い書き方も存在します
あくまでもヒントとして考えてください
No.4
- 回答日時:
少々勘違いしていました。
アクセスした当日を含む一週間の表示ですね、
仮にその一週間を日曜日から始まる一週間として
表示する場合、下記のようにします。
$w = date('w',time()); //今日の曜日を取得
$x = 0-=$w; //日曜日まで遡る日数を取得
for($i=0;$i<6;$i++){
$hinichi[$i] = date('j',strtotime("+$x days"));
$youbi[$i] = date('w',strtotime("+$x days));
$x++;}
No.3
- 回答日時:
こんにちは
課題の出題の趣旨がいまひとつよくわからないのですが、
「アクセスした日が13日、月曜なら」という部分の13日月曜が、
PHPが実行されているサーバまたはマシンのローカルタイムから取得されている物なら簡単です。
解答は
for($i=-1;$i<6;$i++){
$hinichi[$i+=1] = date('j',strtotime("+$i days"));
$youbi[$i+=1] = date('w',strtotime("+$i days));}
とすることで
$hinichi[0]~$hinichi[6]に昨日の日付から5日先までの日付が入ります。
同様に$youbi[0]~$youbi[6]には昨日の曜日から5日先の曜日までが入ります。
$youbi[n]に代入される曜日は0~6で表現されているので
曜日データの連想配列を作り、そこから呼び出せば「0~6」の要素を「日~土」に変更できます。
文字や色の変え方はHTMLに準拠するので
コード内に<font color=***>や<b>をprintやechoで表示させてやれば、変更できます。
No.1
- 回答日時:
まず大事なのは順序を追って考える事です。
プログラムは1行1行の処理を積み重ねて完成するものですから、一気に完成するものではありません。まずは、もし自分がその処理を手作業で行うにはどういう考え方をするか、という事を考えましょう。例題は、その日が含まれる日曜日からの一週間の曜日と日付を表示する、ですね。
1)今日が何日なのか
2)直前の日曜日は何日なのか
と、ここまではいいですか?直前の日曜日を知る方法ですが、PHPにプログラムを見ろとは言えません。だから計算で求める方法を考えないといけませんね。今日が月曜日であれば日曜日は1日前です。つまり今日の日付-1日=今週の日曜という事になりますね。
これで表示のスタート日付がわかりましたので、曜日、日付を7回繰り返して表示するだけです。プログラムに必要な考え方はこういう事です。「どう組むか」の考え方が一番大事で、PHPだなんだという言語の問題はその次の話になります。
それともう一つ大事なのは、PHPの役割はHTMLを出力する事です。ですから、期待する出力されたHTML、つまり最終計を理解しなければ、目的がわからないままプロセスを考える事になります。これでは暗闇の中ですね。ですから慣れないうちは「最終的にこういうHTMLを表示させる」という物を、普通のHTMLファイルとして作っておき、それにスクリプトを書き加えていくとういう方法が良いでしょう。
文字の色、太さ等はHTMLの文法の話なので本来PHPとは関係ないのですが、簡単に言うと太さは<b>等、色は<font color="color">等です。方法は一つではありませんし、厳密にはスタイルシートの利用が勧められますが、最初から色々考えると混乱するでしょうから、まあいいでしょう。
さてヒントを箇条書きしますね。
・最初に最終形のHTMLファイルを作る
・getdate()関数を調べてみましょう。
学校の勉強ですし、自分でやらないと意味がないと思うので、あとはこのヒントから頑張ってみて下さい。
参考URL:http://www.php.net/manual/ja/function.getdate.php
順序良く分かりやすくアドバイスしていただきありがとうございます。
なんとか出来ました。
難しかったですが出来たときはうれしかったですね。初心者なんで余計に。今後も課題があるはずなので精進して行こうと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(教育・科学・学問) 私の友人が課題提出を今日迄だと思っていたけれど大学が今日休みだと気付いてやばい!と連絡してきました。 3 2023/02/12 17:52
- 大学・短大 (工学部)とある数学の講義(必修)を自主休講しようか悩んでいます 7 2022/11/19 21:21
- アルバイト・パート アルバイト二週連続欠勤について 2 2022/09/08 00:44
- 子供・未成年 大学の課題が複数あってつらいです 3 2022/11/29 19:03
- ドイツ語 ドイツ語・音声学 2 2022/07/03 21:26
- その他(悩み相談・人生相談) 無気力、やる気がなくて、課題が出来ません。 3 2023/05/24 09:18
- 学校 大至急お願い致します。 内定取り消しに関する質問です。内定先はほとんどの方が知っている大企業になりま 4 2023/01/28 09:43
- その他(学校・勉強) スシロー “ペロペロ高校生” は、日本の教育の失敗ですね? 20 2023/02/08 07:08
- 学校 大至急お願い致します。 内定取り消しに関する質問です。 先日、コロナにかかってしまい、大学の卒業論文 9 2023/01/25 08:31
- 大学・短大 成績のつけ間違い 4 2023/04/24 19:44
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
MySQLのdate型をphpで○年○月○日...
-
ファイル名に日付の挿入
-
今月と来月のカレンダーの処理...
-
1週間分の日付を日が変わるごと...
-
英訳お願いします。いつまで食...
-
プルダウンメニューの値をDBに...
-
Dosブロンプトでtabを出力したい
-
バッチファイルでpingの結果を...
-
ログイン画面から入って、「戻...
-
ミュージックのアートワークを...
-
Excel VBA:特定の文字列以降(...
-
VBS「開いているページ」のURL...
-
IEを使わないでhtmlテキストを...
-
OpenFileDialogの自作
-
Google scholarがひらけなくな...
-
The session id contains inval...
-
PHPを使って、別サイトの一部を...
-
ps3で久しぶりにCDの音楽情報取...
-
Yahoo! JAPAN IDを新規取得でき...
-
switch()文で値の大小比較
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
開始と終了を指定して、その間...
-
ファイル名に日付の挿入
-
アップロードしたファイル名に...
-
昨日の日付を取得するVBscript
-
C言語でシステム日付との差を...
-
C言語を使って、ある特定の日の...
-
Accessコンボボックス
-
現在時刻をyyyymmddhhmmss形式...
-
月曜日から始まる週間カレンダ...
-
6ヶ月前の日付を取得するにはど...
-
MySQLのdate型をphpで○年○月○日...
-
今日の日付から1週間のリスト
-
MYSQLの日付から現在までの年数...
-
ASP 年度年齢の計算
-
ESXiのdateコマンドについて
-
PHP 指定した期間だけ表示した...
-
改行されないカレンダー(PHP)
-
VBAでのDATEについて
-
シェルスクリプト:N日前の日付...
-
rss2.0<pubDate>の日付整形
おすすめ情報