当ブログに掲載しているサンプルは、すべて利用者の自己責任という形でお願いします。
ただし、明らかな不具合がある場合、ご連絡いただければ、訂正記事を出します。
また、こちらのサンプルは、別のサイト等への公開、転載は一切禁止しています。
どうしてもと言う場合は、筆者にあらかじめご連絡ください。

テクてく Lotus 技術者 Slack に参加しよう!

2009年6月10日水曜日

営業日の計算

今日は、久しぶりに@関数のサンプルです。
よく「xx営業日」という言い方をします。土日祝祭日は日数に数えないで、あとxx日あるという意味ですね。
ノーツでは、6.0.xから、これを簡単に算出できるようになりました。
@BusinessDaysという関数を使います。
期間と除外する曜日、日付を引数として渡せば、その期間の営業日を返してくれるというものです。

サンプルでは、最初の日と最後の日、それと除外する曜日を選択すると、その期間内の営業日数を返してくれます。
除外する日付は組み込んでませんので、必要な場合はカスタマイズしてみてください。


カスタマイズしたいけど方法が分からないと言う方は、筆者の会社までご相談ください(^^

StartDate := @Prompt([OkCancelEdit];"初日の入力";"営業日を計算する最初の日付を入力してください。";@Text(@Today));
EndDate := @Prompt([OkCancelEdit];"最終日の入力";"営業日を計算する最後の日付を入力してください。";"");
Jogaibi := @Prompt([OkCancelListMult];"除外曜日の選択";"営業日として数えない曜日を選択してください。";"";"1:日":"2:月":"3:火":"4:水":"5:木":"6:金":"7:土");
ExcludeDay := @Replace(Jogaibi;"1:日":"2:月":"3:火":"4:水":"5:木":"6:金":"7:土";"1":"2":"3":"4":"5":"6":"7");

tmp1 := @BusinessDays(@TextToTime(StartDate);@TextToTime(EndDate);@TextToNumber(ExcludeDay));
tmp2 := @BusinessDays(@TextToTime(StartDate);@TextToTime(EndDate));

ret := @If(Jogaibi=1;@Text(tmp2);@Text(tmp1));

@Prompt([Ok];"営業日";StartDate + "から" + EndDate + "までの営業日数は、" + ret + "日です。")


【PR】ノーツ/ドミノに関するお問い合わせは下記まで【PR】
Lotus Notes/Domino カスタマイズとセキュリティ強化 - 株式会社エフ

0 件のコメント: