- PR -

VB.netで祝日の算出に関しまして

1
投稿者投稿内容
ハワイ
会議室デビュー日: 2007/05/30
投稿数: 13
投稿日時: 2007-06-21 09:40
いつもお世話になっております。

VisualSutudio2005
VB.net
で開発を行っております。

利子計算プログラムを作成しておりまして困っております。
返済日ごとの日数を計算して利息を算出するのですが
たとえば基本の返済日が25日の場合、25日が土、日、祝祭日
ですと返済日が26日になり、前月の返済日から今月の返済日
までの日数が変わり、利子額も変わるというものなのですが

祝祭日をどう判断させればよいか悩んでいます。

WEBで検索しましたところ関数のようなものが見つからず、
祝日の計算をプログラミングする方法は見つかりました。

最悪、プログラミングするしかないとは思っておりますが
なにか他に策がありましたらご教授いただきたいと思います。

よろしくお願いします。

よっし〜。
ベテラン
会議室デビュー日: 2007/04/17
投稿数: 89
お住まい・勤務地: 北のほうの国
投稿日時: 2007-06-21 10:12
引用:

ハワイさんの書き込み (2007-06-21 09:40) より:

WEBで検索しましたところ関数のようなものが見つからず、
祝日の計算をプログラミングする方法は見つかりました。

最悪、プログラミングするしかないとは思っておりますが
なにか他に策がありましたらご教授いただきたいと思います。




1.算出方法をプログラミングする。
2.祝祭日の日付情報を外部データ化する。

私も過去に試みましたが、上記の2方法しかないのでは?と思います。
祝祭日は元号と同様に国独自のものですし、法改正もありますから。

プログラミングした場合は、祝日法の改正があると
算出方法が変わりますので修正はどうしても必要になります。
(今年からも変わりましたし…)

日付情報をデータベース化した場合、プログラム修正は必要ないですが
情報を打ち込む手間が多くなってしまいますね。


>追記(2007.06.21 14:40:45)
私が作ったものです(平成19年改正対応済)
参考までに(汚すぎて参考にならないかもしれませんが…)

http://www3.to/tkhr0319/program.html


[ メッセージ編集済み 編集者: よっし〜。 編集日時 2007-06-21 14:46 ]
よねKEN
ぬし
会議室デビュー日: 2003/08/23
投稿数: 472
投稿日時: 2007-06-21 10:18
引用:

ハワイさんの書き込み (2007-06-21 09:40) より:
祝祭日をどう判断させればよいか悩んでいます。

WEBで検索しましたところ関数のようなものが見つからず、
祝日の計算をプログラミングする方法は見つかりました。

最悪、プログラミングするしかないとは思っておりますが
なにか他に策がありましたらご教授いただきたいと思います。



祝祭日は国ごとに違いますし、よく改正されますから、
クラスライブラリにはありません。
各種Webサイトでも汎用的な仕様のものを提供していることはありません。
#カレンダーマスタ的なものを利用する方法だとあるかもしれませんが

というわけで、作るしかないわけですが、
プログラム内部で作ってしまうとすぐに改修しなければならなくなります。

例として春分の日、秋分の日は、計算で出せますが、
正式な日にちは前年だったかに発表されるものですので正解ではありません。
後、法改正によりハッピーマンデー法の対象となっている休みも年々増えています。

そこで、データベースなどでカレンダーマスタといったような
テーブルを持って、そこで祝祭日を判断するという方法があります。
割と一般的な方法かと思います。
(休日の考え方自体が会社によっても異なる場合もあるので)

さらに土日も含めてカレンダーに登録しておく方法を取るなら、
単にカレンダーに登録されている休日に対して処理するだけでよくなります。

<追記>
よっし〜。さんも指摘されていますが、
カレンダーマスタを用意する方法は、毎年マスタメンテナンスの手間が発生します。
その点をお客様に説明しておくことが必要です。
また、土日も含めて登録するような場合、デフォルトで土日は休みとして
設定された状態で画面が初期表示されるなど入力の手間を減らすなどの
配慮は必要かもしれません。
</追記>


[ メッセージ編集済み 編集者: よねKEN 編集日時 2007-06-21 10:22 ]
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2007-06-21 20:56
むか〜しメンテしたシステムでは、毎年手動で再設定していました。その時、
土日を再計算
祝祭日とマークされた休日は引き継ぐ
ハッピーマンデーを計算
国民の休日を判定
とし、秋分の日、春分の日は変更可能としました。
_________________
1

スキルアップ/キャリアアップ(JOB@IT)