【お題】引っかけ問題(締め切り10月27日(日)23時)

あるシステムで営業日を管理したいとの要望があります。
営業日とは休日・祝日を除く、いわゆる平日を指します。

今のところDBにテーブルを追加し、1960年~2050年までの営業日を登録・管理する方法を検討しております。

が、メンテナンス方法に悩んでおります。
今後、祝日が増える場合等、都度テーブルのメンテナンスが発生=工数発生で、お客様的にはうれしくないでしょうし、メンテナンス機能等を開発してお客様にメンテナンスを委譲するの喜ばれないでしょうし・・・

極力手の掛からない管理方法などご存知でしたらご教授いただけないでしょうか。

A 回答 (3件)

.NET スペシャリストです。



考え方としてはそれでOKだと思います。
営業日は企業や子会社によっても異なります。

普通、こういう時に使用されるプロバイダモデルという設計手法を用いて、休日を提供するコンポーネントを作成すると、ロジックが変わっても挿げ替えがとても楽なのですが、ロジックの再編は工数がおおきくなります。

プログラムのライフサイクルと、企業の寿命を考えて、テーブルで管理するのも悪い方法ではありません。
ですが、それである以上は、メンテナンス機能は必須になります。
ビジネスアプリケーションは、例外的な動きに対応することを考慮しなくてはなりませんので。

メンテナンスは必須としても、どこまでが許容範囲なのかですが、
まさか日付をひたすら列挙ではだめでしょう。

休日が何種類あるのかを考えると、それほど難しくありません。
・固定曜日
・固定日
 (有効年度範囲が必要かも)
・規則性のある日(X月第Y番目Z曜日)
 (有効年度範囲が必要かも)
※ 過ぎたデータを使わないのなら有効年度範囲は不要

このデータがあれば、日付を与えた時にそれが休日であるかどうかの判別は可能なはずです。
また、メンテナンス範囲は、固定曜日はチェックのみ。固定日・規則性のある日は日付一覧(おそらく10程度)のみ。変更頻度は数年に1度。

こういうのって、外部サービスでもあればうれしいのですが。。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

やはりテーブル管理は妥当みたいですね。
となるとメンテ画面のインターフェースを考えなくてはいけませんね。
お客様のご要望を確認してみたいと思います。

ありがとうございます。

お礼日時:2009/02/28 15:39

#1です。



訂正

5は「国民の祝日」ではなくて「国民の休日」でした。
    • good
    • 0

SE兼PGです。



ローンの利子計算のために銀行の休業日を管理するプログラムを組んだことがあります。

休業日としては次の種類があります。
1.特定月日の祝日
2.特定曜日の祝日(ハッピーマンデー法)
3.春分の日、秋分の日
4.振替休日(法律改正で一昨年から月曜以外にも発生します)
5.祝日と祝日に挟まれた日(国民の祝日)
6.土曜日、日曜日
7.年末、年始

1~5は対象年も考慮する必要があります。
3の春分の日、秋分の日は正式には2年後までしか決まっていませんが、ネットで調べれば2100年ぐらいまでは分かります。

今後祝日が増えるとしたら、1と2の場合ですが、そのときのお客様は自分でメンテナンスしてもいいということで、1と2の祝日を変更できるようなプログラムを作成しました。
それ以外の法律改正(4、5のような祝日)は対応できませんのでプログラム修正となることは了承してもらいました。

プログラムではなくてテーブルで管理する場合は、1年間のカレンダーを画面に表示して休業日(営業日)をチェックしてもらい、それをテーブルにするというのはどうでしょうか。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

完全PGMは考えてませんでした。
テーブルでデータ持つ方がイニシャル・ランニング共にコストが少ないかと思いまして。(^_^;)(ただの横着って噂も・・・・)

両方のメリ/デメを出して、お客様に判断頂いて見ようかと思います。

ありがとうございます。

お礼日時:2009/02/28 15:26

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報