現在phpで日付取得や処理について学習しているのですが、
今月の選択された曜日から日付を出す。という内容で
$day += ($num - 1) * 7;//曜日の数から日付求める
というところの
($num - 1) * 7
入力された第$num週から1を引いて7をかけ、
曜日の値に加算していくことで、当月の日付を出すという、
このような数字の作り方(鶴亀算みたいな?)に気づいたり、発想することがまだ苦手です。
早くこのようなものに慣れたいのですが、
これは基本的な算数を改めて学習していくことで
身につけていくものでしょうか?
それとも演繹的や帰納的に論理を考えていくことで発想していく必要があるものでしょうか?
自分の頭が固いなぁという実感があり、ロジックを考えるのが億劫にもなります。
やる気はあるんですが 笑
また調べていたら
事務処理の実務などで、エクセルのVBAを使うところでは基本的なことのようですね。
私は情報処理の学習は、基本情報くらいでしか学んでおりませんが、
今後、プログラムの基本を押さえて上手くなりたいです。
追記
数をこなしパターンを覚えていくことも大事ですが、
自分の頭でしっかり考えていくことも合わせて大事であると書きながら思いました。。。
php
1<!doctype html> 2<html> 3<head> 4<meta charset="UTF-8"> 5<title>sample</title> 6</head> 7<body> 8<?php 9//第何日 10for ($i = 1; $i <= 5; $i++) { 11 $option_num .= '<option value="' . $i . '">' . $i . '</option>' . "\n"; 12} 13//曜日のプルダウン 14?> 15<form action="" method="post"> 16第<select name="num"> 17<?php echo $option_num; ?> 18</select> 19<select name="week"> 20<option value="0">日</option> 21<option value="1">月</option> 22<option value="2">火</option> 23<option value="3">水</option> 24<option value="4">木</option> 25<option value="5">金</option> 26<option value="6">土</option> 27</select>曜日 28<input type="submit" name="btn" value="送信"> 29</form> 30<?php 31$year = date('Y'); //年 32$month = date('n'); //月 33if (isset($_POST['btn'])) { 34 $num = $_POST['num']; 35 $select_week = $_POST['week']; 36 //1から7日までの日付を取得する 37 for ($i = 1; $i <= 7; $i++) { 38 $timestamp = mktime(0, 0, 0, $month, $i, $year);//第6引数は今年のため省略OK 39 $week = date('w', $timestamp); 40 if ($week == $select_week) { 41 $day = $i; 42 } 43 } 44 // 45 $day += ($num - 1) * 7;//曜日の数から日付求める 46 $last = date('t'); 47 if ($day <= $last ) { 48 echo $day . '日' . "\n"; 49 } 50 else { 51 echo '該当する日がありません。' . "\n"; 52 } 53} 54?> 55</body> 56</html>
回答5件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/03/31 12:10