• ベストアンサー

ある日付から営業日をひいた日付の計算

leaz024の回答

  • ベストアンサー
  • leaz024
  • ベストアンサー率75% (398/526)
回答No.2

質問文にある変数、x, n, y を、それぞれ変数 $x, $n, $y として使用します。 また、$x, $y は、シリアル秒とします。 $w = (localtime($x))[6]; if ($n >= $w) {   $s = int(($n - $w) / 5) + 1;   $n += $s * 2; } $y = $x - $n * (60*60*24); (多分)これで求まると思います。 ■考え方 ・n 営業日前、というのが、1回も土日をまたがなければ、$x から $n 日分のシリアル秒を引けばOKです。 ・1回でも土日をまたぐのであれば、前週の金曜日まで(営業日で)戻り、そこから(週5日で)何週分あるかを求めます($s)。その週数に土日の日数(2)をかけた値を $n に足せば、土日を含めて何日前かが求まります。

nak205
質問者

お礼

ありがとうございます。 すごいです。 考え方を読むと、ごもっとも、かつシンプル。 ほんとにありがとうございます いただきます。

関連するQ&A

  • 銀行の営業日の数え方

    今日金曜日にある会員の申し込みをいたしました 指定銀行は三井住友銀行です その銀行の口座を持っていないので支店まで現金で振込み手続きに向かいます 今日から5営業日以内ということは 今日で1営業日が過ぎて 土曜・日曜はカウントせず、2営業日が来週の月曜日、3営業日が火曜日、4営業日が水曜日でリミットの5営業日が木曜日という数え方で合ってますでしょうか? その支店は土曜も開いてますが融資などの窓口のみで現金振込みは出来ないようです。

  • 基準日が休日などの場合の翌営業日を求める方法!

    ある日から14日間後を基準日として、その基準日が土、日、祝祭日の場合は、15日目が土、日、祝日分の日数をプラスした営業日まで延長される計算式を教えてください。営業日は、土、日、祝祭日以外です。 (例えばある日が1月28日の場合は、14日目が2月11日にあたるので、翌営業日が2月13日になるという感じです。)毎年、祝祭日が変わるし複雑でわかりません。 何かいい関数などがあれば教えてください。

  • EXCELで営業日だけを表示させたいのですが

    EXCEL2003(SP3)を使っています。 仕事で、前日のデータを取る必要があります。 日付を指定するセルに、「=today()-1」と入れてしまうと、月曜日や、祝日の翌日に、データが存在しなくてエラーになります。 月曜日には、前の週の金曜日の日付が表示されるようにしたいのですが、IF関数とかいろいろ考えてもわかりません…。 どなたかお知恵を拝借できませんでしょうか。 営業日は、いわゆるカレンダー通りです。 よろしくお願いします。

  • エクセル 5営業日の計算式

    エクセルで 土曜日・日曜日・祝祭日を除く 当日から5営業日に日付を表示させる方法を教えてください。 当日 5営業日 9/10  9/18 10/1  10/8 上記のように表示をさせたいです。 教えてください。

  • EXCEL 火曜日と金曜日だけを抜き出したい

    エクセルを利用して、火曜日と金曜日の日付だけを抜き出したいのです。 A列には、本日から平成22年3月31日までの日付を入力しています。 このうち、火曜日と金曜日の日付だけを抜き出したいのです。 どのようにすると良いのでしょうか よろしくお願いします。

  • エクセルで特定の曜日の日付のみをオートフィルで表示させられますか?

    エクセルで特定の曜日の日付のみをオートフィルで表示させられますか? またはほかの方法でもできるならば教えて下さい。 現在、会社の外注さんのチェック表を作っているのですが 毎週、火曜日と金曜日だけ来て、納品書を渡してくれるのですが その訂正や訂正した箇所等をまとめておきたいのです。 そこで、その日付が必要なのですが 火曜日から金曜日は+3日 金曜日から火曜日は+4日で 等間隔の日付にならないので、やり方に困っています。 当方初心者で、現在オフィスではエクセル2003を使用しています。 宜しくお願い致します。

  • UNIXシェル内での日付計算

    UNIX(今使ってるのがHP-UX11i)上のバッチシェルで、 指定した日数分の前の日付を取得したいのですが、 何か方法はないでしょうか。 (例) 現在の日付: 20060511 指定した日数: 10(MAX値は100程度) 取得する日:20060501

  • プルダウンメニューから特定曜日の日付を選択する方法は?

    プルダウンメニューで特定の曜日の日付を選択するにはどのようにしたら良いのでしょうか? たとえば、火曜日と金曜日など。 日付は常にその日以降になるようにしたいです。 よろしくお願いします。

  • 日付を使った計算式を教えてください

    [環境紹介] WINDOWS10、ACCESS2007(令和表示はテンプレートを使用して表示中) 「令和表示の式です」 =DLookUp("和暦","T_和暦マスタ","開始年月日<= #" & [txt日付] & "#and 終了年月日>=#" & [txt日付] & "#") [やりたいこと] 過去や未来の対象日や日数を下記のやり方で実施しています。「曜日」と「和暦」の表示方法(式)が分からずアドバイスをお願いできませんでしょうか。今の知識レベルで質問内容に対する可能可否の判断ができませんので、無理難題の質問内容でしたらご理解とご了承を賜りたいと思います。 [やっていること] 事前に設計しないでテーマを増やしたこともあり、テキストボックスの名前に整合性がありません。将来新たなデータベースを作る時(自分で納得できる知識が習得・・・)の課題と認識しております。 ■起点日→幾日後の月日(起点日から後日の西暦日を表示) テキストボックス名:西暦2「カレンダー入力」 テキストボックス名:日数2 手打ち テキストボックス名:対象2 コントロールソース「 =[西暦]+[日数] 」 ■起点日→対象日迄の日数(起点日から後日の日数を表示) テキストボックス名:開始「カレンダー入力」 テキストボックス名:終了 手打ち テキストボックス名:日数 コントロールソース「 =[着地日]-[開始日] 」 ■起点日→幾日前の月日(起点日から前日の日数を表示) テキストボックス名:西暦55「カレンダー入力」 テキストボックス名:日数55 手打ち テキストボックス名:対象55 コントロールソース「 =[西暦1]+[日数1] 」 [やってみたこと] ■起点日→幾日前の月日(起点日から前日の日数を表示)を例にとりあえず曜日でのチャレンジです。 テキストボックス名:西暦1「カレンダー入力」 テキストボックス名:日数1 手打ち テキストボックス名:対象1 コントロールソース「=[西暦1]+[日数1] テキストボックス名:曜日1 コントロールソース「 =WeekdayName(Weekday(対象1)) 」 結果はエラーでした。 以上ですが、宜しくお願いします。

  • Accessでの稼働日数計算の方法

    Accessクエリー上の開始日と終了日までの稼働日数(土日祭日を除く)と開始日から指定した稼動日数だけ経過した日付を求めたい(Excelのnetworkday関数やWorkday 関数と同じ様な事がしたい)のですが。。。何かいい方法はありませんでしょうか? 宜しくお願いします。