【日付セット】翌営業日 – その2 (paizaランク B 相当) 解答例 – PHP編【paiza】


【日付セット】 > 翌営業日 – その2 (paizaランク B 相当)
※リンク先へ移動する為には「paiza」へのログインが必要です。

前回とは違い祝日も休みとカウントされる問題です。日本の祝日を配列化するほうが面倒くさかった(;^ω^)

解答例

解答方針

前回は土日を進めるだけで良かったので、単純なタイムタンプの増加だけで処理が完了しました。しかし今回は対象月日が土曜日、日曜日、そして祝日かを判定しながら処理を進める必要があります。祝日と土曜日がくっつくこともあり、単純なタイムスタンプの増減だけでは再現できませんからね((+_+))

 

対象月日と曜日を取得し、日本の祝日を配列化する

処理に必要な情報を整理していきます。検査月日を取得した後は曜日配列の作成、祝日配列の作成を行っています。そして「$oneday」変数には一日分タイムスタンプを進める為に「86400」という数値を入れておきます。

 

対象月日から一日分進め、情報を取得する

検査対象日から一日分進めた月日、曜日を「$m」、「$d」、「$w」に格納するまでのコードです。この3つの変数を使い、土曜日か日曜日か、祝日かを調べます。

 

進めた月日を判定し、土、日、祝日なら更に一日分進めるという処理を繰り返す

「while()」文の中が「土曜日、日曜日、祝日のいずれかなら一日進めて各情報を更新する」処理になります。「$judge」、「$w」によって曜日と祝日かを判定し、この変数が「土曜日、日曜日、祝日以外」になるまで「while()」の処理が繰り返されることになります。

 

エッグ

シェアする