質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

Q&A

解決済

6回答

2881閲覧

祝祭日の持ち方(カレンダー作成)

退会済みユーザー

退会済みユーザー

総合スコア0

アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

1グッド

1クリップ

投稿2016/08/04 02:31

カレンダーを作成しようと思っているのですが、表題に関して質問があります。

祝祭日の持ち方ですが、大きく分けて静的な持ち方と動的な持ち方があると思います。

静的な持ち方・・・複数年分を予めデータとして作成しておき、それを元に、カレンダーを作成。
動的な持ち方・・・各祝祭日を計算するプログラムを書き、カレンダー作成の都度計算。

webサービス等のMAX10年程度のスパンを表示するものであれば、静的な持ち方の方がメンテナンスもパフォーマンスも有利だと思うのですが、動的な持ち方を採用したほうが良いケースというのはあるのでしょうか?

ToDoツールの一部で使用しようと検討しておりますが、それに限らず一般論が聞きたいと思っています。

少し曖昧な質問で恐縮ですが、ご意見をいただけると幸いです。

stereo_code👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答6

0

ベストアンサー

こんにちは。

動的な持ち方を採用したほうが良いケースというのはあるのでしょうか?

休日の法律変更は頻繁にはないですし、バグがなければチェックが必要なのは秋分の日と春分の日だけですので、動的の方が人のミスの発生確立は低いだろうと思います。

バグの無いことを十分にチェックでき、かつ、休日設定の毎年の確認を忙しい人が実施せざる得ないケースでは動的な持ち方を採用したほうがよいかも知れません。
セキュリティのこと等を考えると現実的ではないかも知れませんが、個人事業主が一人で展開するようなサービスの場合該当するかも?

投稿2016/08/04 04:14

Chironian

総合スコア23272

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/08/04 05:11

若干語弊のある表現をしますが、無メンテで継続的サービスを行う場合に有効ということですね。 確かに、魅力的です。 ありがとうございます。
guest

0

今年から山の日が始まったり、あとは皇室関連の慶弔事で臨時に休日が発生したり(近年では1993年6月9日、皇太子殿下の結婚の儀)と、祝日は常に変化し続けるものです。

春分・秋分も含めて継続的なメンテナンスは欠かせないものですので、表引きにするにしても算出するにしても、メンテナンスの手間はそう変わらないと思います。

投稿2016/08/04 02:58

maisumakun

総合スコア145184

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

episteme

2016/08/04 03:05

同意。変化し続ける限り静的な表を動的に更新するっきゃないような。
退会済みユーザー

退会済みユーザー

2016/08/04 03:26

> 皇室関連の慶弔事 これは盲点でした。ありがとうございます。 静的ならさくっと変数に1項目追加で終わりそうですが、動的だとテストとか面倒かなぁと思い、静的が有利と感じてます。 動的な持ち方が有利な点ってどんな点ですかね?
guest

0

投稿2016/08/04 02:42

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/08/04 02:46

バグありますよ
退会済みユーザー

退会済みユーザー

2016/08/04 02:50

マジですか。。。ちゃんと見てなかったです>< 動的な持ち方を採用した方がいいケースってなんですかね? 静的データを作るのに必要なのは分かるのですが、webサービス等で使用するメリットがあるのか知りたいです。
退会済みユーザー

退会済みユーザー

2016/08/04 02:52

動的に持ちのはマスターメンテ不要ってことですね。それ以外に思いつきません。 自分が書いたコードの方は、振り替え休日の部分にバグあるので、そこを修正したら使えると思います。
退会済みユーザー

退会済みユーザー

2016/08/04 02:55

了解です! ありがとうございます。
guest

0

コタエじゃなくてごめんなさい。

春分/秋分はどうするんだろ。
毎年国立天文台が算出し閣議決定され官報で公示されるため、
表にできないしアルゴリズムも定義できない。

投稿2016/08/04 02:38

episteme

総合スコア16614

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

episteme

2016/08/04 02:45

なるほど。ならば他の祝祭日も含め、 「各祝祭日を計算するプログラム」は結局"静的な表を引く"わけだから、 同じこと(どっちも静的)なんじゃないすか?
退会済みユーザー

退会済みユーザー

2016/08/04 03:28

「各祝祭日を計算するプログラム」は静的な表を引くものではないと思っています。 9月の第3月曜日とかを都度計算しているかと。
guest

0

解決済みですが、おもろしそうなので少し…

動的な持ち方よりは静的な持ち方がいいんじゃない!?
って意見は自分も同意ですが、例えば基本的なとこは
動的な持ち方をしておき、設定ファイル的なもので
上書き/追加できるようなものもアリなんじゃないかなあ
って思いました。
その場合、既存の祝日予定日や上書きした場合の
祝日予定日をビジュアル的に表示できるなどの
仕掛けを充実させる必要はある気がします。

投稿2016/08/06 21:59

takasima20

総合スコア7458

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/08/06 22:52

回答ありがとうございます。 今回、皆さんに回答いただいた内容を参考にして ・普段は静的な設定ファイル的なもので表示 ・年に一回、設定ファイルを自動更新 って感じで実装しようかなぁと検討しています。 年一回の作業って絶対に忘れる自信がありますし。 > 既存の祝日予定日や上書きした場合の祝日予定日をビジュアル的に表示 これって、ちゃんと更新時に確認しなさいよ!ってことですよね。 余り考えてませんでしたwありがとうございます。
guest

0

言い方を変えるとこういうことだと思います。

  • 静的な持ち方:年毎の祝日をデータベース化し、毎年更新する。
  • 動的な持ち方:法律(祝日の規則性)をコード化し、法律改正時にメンテナンスする。

静的な持ち方の方がメンテナンスもパフォーマンスも有利だと思うのですが、

私もそう思います。パフォーマンスはともかく、メンテナンスも政府が発表している祝日情報をそのままデータ化すればいいだけですし、商用のカレンダーサービス(Googleカレンダーとか)のAPIを使って自動で取得する、ということもできますし。

動的な持ち方を採用したほうが良いケースというのはあるのでしょうか?

思いつきません。

投稿2016/08/04 04:17

catsforepaw

総合スコア5938

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/08/04 05:13

私の意見とほとんど変わらないので、違和感はないです。 他の人のご意見と合わせて参考にさせていただきます。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問