【日付セット】翌営業日 – その1 (paizaランク C 相当) 解答例 – PHP編【paiza】
【日付セット】 > 翌営業日 – その1 (paizaランク C 相当)
※リンク先へ移動する為には「paiza」へのログインが必要です。
解答例
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<?php $input = explode(" ",trim(fgets(STDIN))); $y = 2001; $m = $input[0]; $d = $input[1]; $w = $input[2]; $next = 86400; if($w == "FRI"){ $next = 86400 *3; } elseif($w == "SAT"){ $next = 86400 *2; } $word = $y."/".$m."/".$d; $ans = strtotime($word); $nextday = $ans + $next; echo date("n月j日",$nextday); ?> |
解答方針
問題文には閏年は考慮せず、祝日も考慮しないとあります。つまり次営業で注意すべき点は、対象月日が「金曜日なら3日後の月曜日」、「土曜日なら2日後の月曜日」、「日曜日なら1日後の月曜日」という点になります。
与えられた曜日から〇日後の日付を求めれば答えとなります。〇日後進める方法としてUNIXタイムスタンプで進める方法があります。一日分のタイムスタンプは「86400(60秒 * 60分 * 24時間)」なのでその日数分タイムスタンプを増やし、「date()」関数で答えを出力すれば完了です(*’ω’*)

