C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[6]: 向う50年分の祝日データ作成


(過去ログ 21 を表示中)

[トピック内 13 記事 (1 - 13 表示)]  << 0 >>

■8965 / inTopicNo.1)  向う50年分の祝日データ作成
  
□投稿者/ ナカムラ (6回)-(2007/10/15(Mon) 18:25:14)

分類:[.NET 全般] 

開発環境
こんにちわ。
質問させて下さい。

現在社内でパッケージソフトの開発に携わっているのですが、
向う30年分の祝日データをあらかじめDB(SQLServer2005)に入れなければなりません。

手で一行ずつDBに入力(もしくはINSERT文を書く?)のは大変なのですけれども、
やはりこういった場合はそれしか方法が無いのでしょうか?
それともロジックでどうにかできるものですか?
元旦など固定の祝日に関してはなんとかできそうなんですけれども、
体育の日や海の日など、毎年日づけが変わる祝日に関して、どのように対処していいのかがわかりません。

一般的にはこのような場合にどうしているのかが知りたいです。
なにとぞご教授願います。
引用返信 編集キー/
■8966 / inTopicNo.2)  Re[1]: 向う50年分の祝日データ作成
□投稿者/ さかもと (6回)-(2007/10/15(Mon) 18:39:25)
さかもと さんの Web サイト
さかもとと申します。

> 向う30年分の祝日データをあらかじめDB(SQLServer2005)に入れなければなりません。

ハッピーマンデーを求めるロジックはどこかで・・・。


なんにせよ、30年の間に法改正などでまた休日は変わると思います。が、「事前に30年分入れなきゃダメ」という仕様であればさしあたり現行の法に基づき、30年分をまず入れ込んでおけばよいかと。

そうした上で、
・法改正があったらそれ用の適用パッチか何かを配布
・ユーザー側で休日設定ができる機能を追加しておく

と、泥臭い方法ですが確実ではないかと。

休日だけではなく日本特有の和暦の問題とかもありますしね・・・。

引用返信 編集キー/
■8967 / inTopicNo.3)  Re[1]: 向う50年分の祝日データ作成
□投稿者/ はつね (291回)-(2007/10/15(Mon) 18:41:55)
はつね さんの Web サイト
No8965 (ナカムラ さん) に返信
> 元旦など固定の祝日に関してはなんとかできそうなんですけれども、
> 体育の日や海の日など、毎年日づけが変わる祝日に関して、どのように対処していいのかがわかりません。

体育の日や海の日などがどのように設定されているか調べて、それに基づいて計算させていれる方法があります。
* 成人の日(1月15日 → 1月の第2月曜日 2000年〜)
* 海の日 (7月20日 → 7月の第3月曜日 2003年〜)
* 敬老の日(9月15日 → 9月の第3月曜日 2003年〜)
* 体育の日(10月10日 → 10月の第2月曜日 2000年〜)

でも、また法律変わるかもしれないですよ。


引用返信 編集キー/
■8970 / inTopicNo.4)  Re[1]: 向う50年分の祝日データ作成
□投稿者/ 774RR (54回)-(2007/10/15(Mon) 18:44:10)
2007/10/16(Tue) 08:52:57 編集(投稿者)
2007/10/16(Tue) 08:52:46 編集(投稿者)

休日法が今後50年間変わらないとは思えないし、
春分の日や秋分の日は官報で公布されるまでは確定してないので
http://ja.wikipedia.org/wiki/%E3%83%8F%E3%83%83%E3%83%94%E3%83%BC%E3%83%9E%E3%83%B3%E3%83%87%E3%83%BC%E5%88%B6%E5%BA%A6
http://ja.wikipedia.org/wiki/%E7%A7%8B%E5%88%86%E3%81%AE%E6%97%A5
考えるだけ無駄な気がする。

手入力しかないと思うよ。
少なくとも手入力可能にしておかないと法改正に追いつけない。

仕様変更で過去50年の休日も処理しろと言われるのがオチ:今とは算出方法が違うしー

typo 修正 s/交付/公布/g
過去休日について追記
引用返信 編集キー/
■8980 / inTopicNo.5)  Re[2]: 向う50年分の祝日データ作成
□投稿者/ 未記入 (126回)-(2007/10/15(Mon) 21:10:25)
メンテナンス性を考えマスタデータで設定というのが業務アプリケーションでは基本だったりします。

引用返信 編集キー/
■8997 / inTopicNo.6)  Re[1]: 向う50年分の祝日データ作成
□投稿者/ Jitta on the way (23回)-(2007/10/16(Tue) 07:13:22)
No8965 (ナカムラ さん) に返信
> 開発環境
> こんにちわ。
> 質問させて下さい。
>
> 現在社内でパッケージソフトの開発に携わっているのですが、
> 向う30年分の祝日データをあらかじめDB(SQLServer2005)に入れなければなりません。
>
> 手で一行ずつDBに入力(もしくはINSERT文を書く?)のは大変なのですけれども、
> やはりこういった場合はそれしか方法が無いのでしょうか?
> それともロジックでどうにかできるものですか?
> 元旦など固定の祝日に関してはなんとかできそうなんですけれども、
> 体育の日や海の日など、毎年日づけが変わる祝日に関して、どのように対処していいのかがわかりません。
>
> 一般的にはこのような場合にどうしているのかが知りたいです。
> なにとぞご教授願います。

タイトルは50年
本文は30年
どっち?
まぁ、どっちでもかまわんけど

休日と休日の間の平日は、国民の休日です。
火曜日が祝日なら、月曜日が国民の休日です。これならハッピー マンデーでないほうがいいなぁ。
こういうのもお忘れなく。

春分の日、秋分の日は、一応計算で求まりますが、最終的にはどこかの神宮が決めます。
引用返信 編集キー/
■8999 / inTopicNo.7)  Re[2]: 向う50年分の祝日データ作成
□投稿者/ Mr.T (104回)-(2007/10/16(Tue) 09:16:24)
Mr.Tです、こんにちは。

No8997 (Jitta on the way さん) に返信
> ■No8965 (ナカムラ さん) に返信
>>開発環境
>>こんにちわ。
>>質問させて下さい。
>>
>>現在社内でパッケージソフトの開発に携わっているのですが、
>>向う30年分の祝日データをあらかじめDB(SQLServer2005)に入れなければなりません。

あー、30年使われるシステムが果たしてどんだけあるんだろう、という心の突っ込みは
置いといて。
例えば海の日のように7月の第3月曜日というパターンの場合は、
7月の初日(7/1)の曜日が、
   月曜なら15日
   火曜なら21日
   水曜なら20日
   木曜なら19日
   金曜なら18日
   土曜なら17日
   日曜なら16日
ってカレンダー見ながら、考えてみてくださいな。検索かければ、結構でてくるし。

ストアドプロシジャなんかで十分可能です。
ストアドわかんね、という場合は、お好きな言語で、ロジックで計算した結果日付を
マスタに落としてあげてもよいわけです。
30年だろうが、100年だろうが、ループの回転数が増えるだけで、ループの処理自体が
難しくなるわけじゃありませんので、適当に、気を楽に。
引用返信 編集キー/
■9000 / inTopicNo.8)  Re[2]: 向う50年分の祝日データ作成
□投稿者/ よねKEN (76回)-(2007/10/16(Tue) 09:45:02)
既にご存知かと思いますが、国民の祝日に関する法律の資料を提示しておきます。

国民の祝日に関する法律
http://law.e-gov.go.jp/htmldata/S23/S23HO178.html

上記より引用
>第三条  「国民の祝日」は、休日とする。
>2  「国民の祝日」が日曜日に当たるときは、その日後においてその日に最も近い「国民の祝日」でない日を休日とする。
>3  その前日及び翌日が「国民の祝日」である日(「国民の祝日」でない日に限る。)は、休日とする。

ハッピーマンデー法がらみでひっそりとこの辺もややこしくなってますね。

後、余談ですが、
・海の日と敬老の日のハッピーマンデー化
・4月29日は昭和の日、5月4日はみどりの日に変更

などが最近変わっていますね。
さらなるハッピーマンデー化などまだありそうですので、

>一般的にはこのような場合にどうしているのかが知りたいです。

マスタ化しておいて、ユーザがメンテナンスできる方法を用意するというのは必須ですね。

引用返信 編集キー/
■9026 / inTopicNo.9)  Re[3]: 向う50年分の祝日データ作成
□投稿者/ Jitta (425回)-(2007/10/16(Tue) 21:52:45)
No9000 (よねKEN さん) に返信
> > 「国民の祝日」が日曜日に当たるときは、その日後においてその日に最も近い「国民の祝日」でない日を休日とする。

おお!!ということは、

> ・4月29日は昭和の日、5月4日はみどりの日に変更

とあわせると、5月3日が日曜だと、3,4,5,6 の4連休になるわけですね!!


> >3  その前日及び翌日が「国民の祝日」である日

む?国民の祝日が火曜日の時、月曜日は休みにならないのか。
あ、これの改正で昭和の日とみどりの日ができた?


# 以下余談
ハッピーマンデーは、教育現場では「月曜日のコマ数が少なくなる」と不評です。

引用返信 編集キー/
■9027 / inTopicNo.10)  Re[3]: 向う50年分の祝日データ作成
□投稿者/ bear.mini (1回)-(2007/10/16(Tue) 22:01:39)
bear.mini さんの Web サイト
手前味噌で申し訳ありませんが、

「休日情報 Web サービス」
http://bearmini.net/publicholidays/Default.aspx

というものを公開しております。

このサービスを使うと、年単位で休日の情報を取得できたりします。(SOAP なので XML 形式ですが・・・)

どうしても DB に入力したいということになると、この Web サービス経由で情報を取得したあとで DB に格納するためのプログラムとかを書かないといけないのかもしれませんが。
引用返信 編集キー/
■9028 / inTopicNo.11)  Re[4]: 向う50年分の祝日データ作成
□投稿者/ よねKEN (78回)-(2007/10/16(Tue) 22:12:54)
> 「休日情報 Web サービス」
> http://bearmini.net/publicholidays/Default.aspx

おぉ、すばらしいですね!
ページの説明も読ませていただきました。

こういうパターンは考えもしませんでした。(頭が固いな、自分)
というか、これなら国がサービス提供すれば済むじゃないか!!と思えてきました。

#同じ発想で郵便番号辞書も国がWebサービスを提供してくれれば済むような・・・
#対象データに変更がない場合にはキャッシュを使うとか考慮事項はあるだろうけど

引用返信 編集キー/
■9048 / inTopicNo.12)  Re[5]: 向う50年分の祝日データ作成
□投稿者/ bear.mini (2回)-(2007/10/17(Wed) 16:39:47)
bear.mini さんの Web サイト
No9028 (よねKEN さん) に返信

> というか、これなら国がサービス提供すれば済むじゃないか!!と思えてきました。
>
> #同じ発想で郵便番号辞書も国がWebサービスを提供してくれれば済むような・・・
> #対象データに変更がない場合にはキャッシュを使うとか考慮事項はあるだろうけど

そうですね、私もどこか公的な機関(総務省とか・・・)がこの程度のサービスなら提供してくれているのではないかと思って探してはみたのですが、見つけられませんでした。
それで、おこがましくもこんな公共的なサービスの提供に思い至ったわけです。

郵便番号についても考えたことはあるのですが、こちはさすがに私一人の手には負えなさそうですので自分で作ろうとは思いませんでした。
こういうサービスこそ、民営化したばかりの日本郵政が提供してくれるといいんですけどねぇ。
(Web ページ上で郵便番号検索サービスを提供してくれているのだから、無理ではないと思うのですが)
引用返信 編集キー/
■9054 / inTopicNo.13)  Re[6]: 向う50年分の祝日データ作成
□投稿者/ 中博俊 (1189回)-(2007/10/17(Wed) 20:16:49)
中博俊 さんの Web サイト
>>#同じ発想で郵便番号辞書も国がWebサービスを提供してくれれば済むような・・・
>>#対象データに変更がない場合にはキャッシュを使うとか考慮事項はあるだろうけど

どちらにしても来年の話しかできないと決まっている(官報で告示とかあるから)ので、あまり価値はないんじゃないですか?

それに法令に合わせてシステム変更もいたって常識的なものだと。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -