No.2
- 回答日時:
---
<?php
function getNextBusinessDay($date_start, $count)
{
$holiday = array( "2011-07-18" => "海の日");
$date = clone $date_start;
print $date->format("Y-m-d")."の".$count."営業日後を調べます\n";
$oneday = new DateInterval("P1D");
while ($count > 0) {
$date->add($oneday);
$str = $date->format("Y-m-d");
$w = $date->format("w");
if ($w < 1 #日曜
|| $w > 5 #土曜
|| isset($holiday[$str])) { #祝日
print $date->format("Y-m-d(D)").$holiday[$str]."は営業日ではありません\n";
continue;
}
$count--;
print $date->format("Y-m-d(D)")."は営業日なので、残り $count 日\n";
}
return $date;
}
$date = new DateTime("2011-07-14");
$step = 7;
$next = getNextBusinessDay($date, $step);
print $date->format("Y-m-d")."の".$step."営業日後は".$next->format("Y-m-d")."で
す";
?>
---
こんな感じでしょうか。
この回答へのお礼
お礼日時:2011/06/15 16:16
whileループで土日祝日をcontinueでスキップする感じでしょうか。
是非試してみたいと思います。
ありがとうございました。
No.3ベストアンサー
- 回答日時:
date()関数使えば簡単では?
$weekday = array( "日", "月", "火", "水", "木", "金", "土" );
$date = new DateTime(date('Y-m-d'));
$date->modify('+7day');
print $date->format('Y-m-d') .'は'.$weekday[$date->format('w')]."曜日";
詳しくはこちらで
http://php.net/manual/ja/ref.datetime.php
No.4
- 回答日時:
こういうロジックは人それぞれで楽しいですね。
自分ならこうするかな。
============================================
//設定: n日後と 休日(曜日,日付)を配列に
$n = 7;
$offdays = array('Sat','Sun');
$holidays = array('2011-01-01','2011-02-11');
//n日後が休日から外れるまで +1日秒してゆく
$n = strtotime("+$n day");
while(1){
if( in_array( date("D",$n), $offdays) ||
in_array( date("Y-m-d",$n),$holidays)){
$n += (60 * 60 * 24);
}else{
break;
}
}
//$n(timestamp)を取得済みなので 後はお好きにお料理
echo "仕上がりは、".date("n月j日",$n);
=============================================
※実務的には、営業時間を過ぎていれば翌日として計算する等の処理も必要になるかと。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) 従業員増減対応で当番種類の増減対応な当番表 21 2022/07/19 07:30
- Excel(エクセル) 【Excel質問】 「本日の日付」から指定条件を満たす営業日経過後の日数を表示させる関数式 3 2022/06/06 23:28
- Excel(エクセル) エクセルの祝日に色が反映しない 4 2022/05/18 09:58
- Excel(エクセル) 週毎の集計 2 2023/08/04 16:56
- 労働相談 有給計算について 回答お願いします。 建設業経営です。休日は日曜のみ 従業員の有給計算について 雇い 2 2023/03/26 06:12
- 電子マネー・電子決済 ドットマネー交換について質問 ドットマネーの交換先にdポイントがあります 交換時間は3営業日(土日祝 1 2022/11/27 09:25
- その他(Microsoft Office) エクセルについて教えてください。 3 2023/05/19 18:19
- 求人情報・採用情報 月単位、週40時間の変形労働時間制で、 日曜祝日土曜半日の固定休+シフト制(平日一日)の企業の場合、 1 2023/08/10 23:43
- 就職・退職 退職日について教えてください 2/28が最終出勤日になりました 有休が27日あり、3/1から有休消化 1 2023/02/03 12:39
- 求人情報・採用情報 アルバイトの面接結果について。 4月の29日のお昼頃、接客販売のアルバイトの面接を受けました。 結果 1 2023/05/06 16:36
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
開始と終了を指定して、その間...
-
プルダウンメニューの値をDBに...
-
C言語でシステム日付との差を...
-
日付フォーマット
-
差分の月数を算出する方法
-
C言語を使って、ある特定の日の...
-
MySQLのdate型をphpで○年○月○日...
-
おかしなところがあればどんな...
-
DMMの動画を全件取得したのです...
-
Yahoo! JAPAN IDを新規取得でき...
-
Dosブロンプトでtabを出力したい
-
フォームを使わずにPOST送信す...
-
アクセスの度にIPアドレスを変...
-
【C#】DataGridViewの最大列数...
-
ローカルのコンピュータ名を取...
-
【C#】FindWindowExの使い方を...
-
先日NISAの投資信託で、初めて...
-
初歩的な質問だと思います。IF...
-
Parse error というエラーの対...
-
バッチファイルで、全てのウィ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
開始と終了を指定して、その間...
-
ファイル名に日付の挿入
-
昨日の日付を取得するVBscript
-
substrの使い方について教えて...
-
一週間の表示の仕方と文字表示
-
PHPで以下のような占いプログラ...
-
C言語を使って、ある特定の日の...
-
アップロードしたファイル名に...
-
PHPでカレンダーを作る(縦書き)
-
プルダウンメニューの値をDBに...
-
第何週かを取得したい
-
日付によって画像を変える
-
差分の月数を算出する方法
-
SQL:TIMESTAMPの期間検索を指...
-
PHP 指定した期間だけ表示した...
-
C言語でシステム日付との差を...
-
プルダウンで今日以降の日付を...
-
Accessコンボボックス
-
MovableTypeで、ある日付を過ぎ...
-
Java Scriptで、ある日付に加算...
おすすめ情報