【ワレコ式】完全自動計算 祝日・休日・六曜 カレンダーを作ってみた

この記事は約11分で読めます。
スポンサーリンク

2017年3月20日(月)は春分の日だった。

Wikipediaによると、

春分の日(しゅんぶんのひ)は、日本の国民の祝日の一つであり、春分日(天文観測により春分が起こるとされる日)が選定される。通例、3月20日から3月21日ごろのいずれか1日。

しばしば、「昼と夜の長さが同じになる。」といわれるが、実際は昼の方が長い。詳細は春分を参照のこと。また、本項において、国民の祝日となる日を「春分の日」、天文学上の春分が生じる日を「春分日」と区別する。

である。

つまり、春分の日は3月の20か21頃であるが、どの日かは毎年変わるのだ。

実はワテは、その事実を昨日まで知らなんだ!

春分の日は3月20日かと思っていたのだ。

当記事では、そんなウッカリ屋のワテが、プログラミングの練習を兼ねて、カレンダーサイトを作ったので紹介したい。

作ったサイトはこれだ。

ワレコ式 完全自動計算 祝日・休日・六曜 カレンダー

では、本題に入ろう。

スポンサーリンク
ワテ推薦のプログラミングスクールで学ぶ
スポンサーリンク
スポンサーリンク

国民の祝日

16個ある。

その中で毎年その日にちが変化するものを太字で書いてみた。

1月

元日:1月1日

成人の日:1月第2月曜日

2月

建国記念の日:2月11日

3月

春分の日:春分日

4月

昭和の日:4月29日

5月

憲法記念日:5月3日

みどりの日:5月4日

こどもの日:5月5日

7月

海の日:7月第3月曜日

8月

山の日:8月11日

9月

敬老の日:9月第3月曜日

秋分の日:秋分日

10月

体育の日:10月第2月曜日

11月

文化の日:11月3日

勤労感謝の日:11月23日

12月

天皇誕生日:12月23日

春分の日と同じく秋分の日も変化するのだ。

 

これ以外に「国民の休日」や「振替休日」と言うのがある。

国民の休日や振替休日

同じくWikipediaによると、国民の休日とは

国民の休日(こくみんのきゅうじつ)は、日本において、国民の祝日に関する法律(祝日法)第3条第3項[1]で定められた休日の通称である。

前後が祝日である平日は、国民の休日となり、休日となる。

と言う事だ。

 

また、振替休日は

振替休日(ふりかえきゅうじつ)とは休日(主に祝祭日)が他の休日(日曜日、他の祝祭日など)と重なった場合、月曜日以降を休日にして休日が減らないようにする制度である。
日本では国民の祝日に関する法律が定めているが法律中に「振替休日」、「振替」の字句はなく、これらは通称である。

との事である。

 

まあ、兎に角、日本には沢山の

  • 国民の祝日
  • 国民の休日
  • 振替休日

が有るのだ。

 

さて、春分の日が毎年変化すると言うのを昨日まで知らなんだワテが、この三連休を利用してカレンダー表示のサイトを作成してみた。

まあ、世の中には多数のカレンダー機能を提供しているウェブサイトがあるので、今更ながらと言う感じではある。

でもまあ、プログラミングの変人のワテとしても、最近猛勉強中のVisual Studio 2017 Community を駆使して作成してみた。

 

それがこれだ!

ワレコ式 完全自動計算 祝日・休日・六曜 カレンダー

まあ、即席で1日で作成したので表示の崩れなど細かいところは色々と問題があるかもしれないが、取り敢えず動くようにした。

作成方針としては、シンプルで見易いカレンダーを心掛けた。

また、見たい年度に簡単にジャンプ出来るようにユーザーインターフェースを工夫した(つもり)。

http://www.wareko.net/WarekoCalendar/

完全自動計算 祝日・休日・六曜 カレンダーの特徴

 

  • 開発ツールはマイクロソフト社のVisual Studio 2017 Community。先日ワテもインストールした。
  • ASP.NET MVCプロジェクトで作成。このところ猛烈に勉強中だ。
  • カレンダー表示などの表形式データにはWebGridを使うと便利。
  • 日本の祝日・国民の休日・振替休日を完全自動計算して赤い丸で囲って分かり易く表示する。
  • 六曜と言われる「先勝・友引・先負・仏滅・大安・赤口」と言う六つの暦注(れきちゅう)を完全自動計算し表示する。
  • 表示出来る西暦年数の範囲はC#で扱えるDateTimeの範囲。
  • 具体的には 0001/1/1 12:00:00 AM ~ 9999/12/31 23:59:59.9999999 だ。
  • カレンダーの始まり曜日を任意の曜日から選択可能とした(結構いい感じだと自画自賛)。

このような革新的特徴を持つ「ワレコ式 完全自動計算 祝日・休日・六曜 カレンダー」であるが、特に力を入れたのが「完全自動計算」と言う部分だ。

つまり、もし手作りのカレンダーサイトだと、ウェブサイトとして公開するわけなので、毎年12月あたりになって翌年のカレンダーを手作りで作るのは何かと大変な作業だ。

それに間違いなども入り易い。

そうでは無くて、一旦公開したら、あとは放っておけば完全に自動で計算して表示出来るWEBサイトを目指した。

上記の通り、表示出来る西暦年数の範囲はC#で扱えるDateTimeの範囲であり、具体的には 

0001/1/1 12:00:00 AM ~ 9999/12/31 23:59:59.9999999

なのでほぼ1万年のカレンダーが表示出来る。

 

ちなみに先日東京証券取引所に上場した

(株)ほぼ日  コード3560

の株価は買い注文が殺到して公開価格(2350円)の2倍以上の5000円台まで上がった。

(株)ほぼ日とは有名なコピーライターの糸井重里氏(68)が社長を務める会社だ。

ほぼ日刊イトイ新聞と言うウェブサイトでも有名だ。

(株)ほぼ日

代表者名 糸井 重里
特色 糸井重里氏創設サイト「ほぼ日刊イトイ新聞」で集客、自社企画手帳など直販。販売は上期偏重
本社所在地 〒107-0061 東京都港区北青山2−9−5 スタジアムプレイス青山
設立年月日 2002年10月
市場名 東証JASDAQスタンダード
上場年月日  2017年3月16日
従業員数 (単独) 66人
コード 3560

 引用元 Yahooファイナンス

 

主力製品は「ほぼ日手帳」というやつらしい。

アマゾンにもある。

ワテは実は知らなかったのだが、物凄い人気商品らしい。

東京糸井重里事務所という販売者名でアマゾンには関連の文房具が沢山ある。

アマゾンで糸井さんの商品を見る

 

と言う事で、株の話題に逸れてしまったが、ワテとしても数年後には

ほぼ万年カレンダーのサイトで株式上場を目指したいと思っている。

その時には、「(株)ほぼ万」にするかな。

高級料亭のなだ万とは関係ない事は言うまでも無い。

将来、(株)ほぼ万を設立した暁には「ほぼ万カレンダー」販売に乗り出したい。

なだ万の西京漬けは最強だ。

なんのこっちゃ。

完全自動計算 祝日・休日・六曜 カレンダーの制限事項

即席で作ったので、幾つかの制限事項がある。

  • 六曜(先勝・友引・先負・仏滅・大安・赤口)の表示機能は、遠い過去あるいは遠い未来の年度では表示出来ない。
  • 祝日・休日の表示機能は、遠い過去あるいは遠い未来の年度では表示出来ない。

 

まあ、要するに何十年も昔や何十年も未来の六曜や祝日の計算には未対応です。

その場合にはエラーなどは表示せずに、単に、六曜や祝日の表示が出ないだけで、カレンダーの機能としては西暦0001年から9999年まで完全に対応しています(C#のDateTime機能を使っているので)。

 

それ以外に、表示上の工夫もしてみた。

Twitter Bootstrapを使った完全なレスポンシブ対応だ!

6カラム表示

パソコンなどのウインドウ幅が広い画面では6カラム表示とした。完璧や!

 

http://www.wareko.net/WarekoCalendar/

 

3カラム表示

少しウインドウ幅を狭めると3カラムとした。

4カラム表示も検討したのだが、まあ、3か月単位で区切るほうが自然かなと思って3カラムにした。

つまり一年を三カ月ごとの四半期に分ける感じ。

 

2カラム表示

さらにウインドウ幅を狭めると2カラム表示だ。

完璧なレスポンシブ対応だ。でもまあワテがやっているのではなくて、Twitter Bootstrapがやってくれている。頼もしいやつだ。

 

1カラム表示

さらにウインドウ幅を狭めると1カラム表示だ。

この場合にはスマホ、タブレット端末などの画面幅400ピクセル前後の画面を想定している。

実に見易い表示だと思っている。自画自賛と言う奴だ。

と言う事で、「ワレコ式 完全自動計算 祝日・休日・六曜 カレンダー」は完全レスポンシブ対応です(たぶん)。

もし何か表示上の不具合など有りましたらコメントなどでお知らせ下さい

 

週の始まり表示を任意の曜日に設定可能

今回、ワテが物凄く力を注いだのがこの機能だ。

定番のカレンダーなら月曜日から始まるものが多い。

それでは芸が無い。

ここはプログラミングの技術を駆使して、任意の曜日から表示を開始出来る仕様にした。

曜日を選択する七個のラジオボタンをクリックするだけで一瞬にして表示が切り替わる(上図)。

この驚くべき機能は、Windows VPS、Windows Server 2012R2、IIS、Visual Studio 2017、ASP.NET MVC、C#など各種先進テクノロジーの連携作業により完璧に動作する。

かつ、ワテの猛烈なプログラミングの努力の賜物で有る事は言うまでも無い。

などと、少々誇張して文章を書くと訪問者さんの数も飛躍的に伸びるか、激減するかのどちらかだと思うが、そんな事はどうでも良いので次に進もう。

 

http://www.wareko.net/WarekoCalendar/

 

使い易いユーザーインターフェース(のつもり)

任意の西暦にジャンプ出来るようにユーザーインターフェースは工夫してみた。

でもまあ、即席で作成したので、自己採点では60点くらいかな。

今後、改良してい行きたい。

 

 

完全自動計算 祝日・休日・六曜 カレンダーの注意事項

「ワレコ式 完全自動計算 祝日・休日・六曜 カレンダー」は細心の注意を払って作成しているますが、万一計算間違いなどの可能性もあります。

従いまして、表示された結果をご自身でも十分にチェックした上でお使い頂くようにお願いします。

万一、計算間違いや表示間違いがありその結果、皆さんに金銭的あるいは精神的損害などが発生してもワテとしましては一切責任は取れませんので、ご了承下さい。

例えば、大安の日を選んで結婚式場を予約したら、カレンダーの表示間違いで実際には仏滅だった!なんて言う事態に成っても、ワテとしましては一切知りません。

悪しからずご了承ください。

 

http://www.wareko.net/WarekoCalendar/

 

まとめ

2017/03/20(月)に【ワレコ式】完全自動計算 祝日・休日・六曜 カレンダー Ver1.0を公開した。

ASP.NET MVCで作成した。

ASP.NET MVCは色んな応用が可能なので面白い。

ワテの場合、約半年くらい猛勉強してMVCつまりModel View Controllerと言う考え方やそれを実際に使えるASP.NET MVCの便利さが良く分かって来た。

皆さんもASP.NET MVCでWEBサイト作りをすると良いだろう。

 

初心者の人は、まずはC#を覚えるのが良いと思う。

500ページもある物凄い本だ。ワテはまだ読んでいないが。多分読んでもその分量の多さに途中で挫折するかも。

 

あるいはC++もワテは大好きだ。

本物のプログラマーならC#とかVB.NETみたいなチャラチャラしている言語は使わない。C++こそが本物のプログラマーに相応しいだろう。

最近のC++は益々進化して、もう訳分からないような文法に発展している感じ。その進化の方向性が正しいのか間違っているのかは、ワテには分からない。でもまあ、ワテの理解を超越してヘンテコな方向に進化している感じがするのだが。C++好きにはその変態具合が堪らないと言う人も多いかも。

ちなみに、一昔前なら、本物のプログラマーが使う言語と言えばFORTRANと決まっていた訳だが、今の時代ならC++だろう。ちなみにワテの場合には本物のプログラマーではなくバッタもんのプログラマーかも知れないが、FORTRANは使える。

 

さて、FORTRANも良いけれど、WindowsでWEBサイトの構築をするなら、ASP.NETだ。

この本は664ページもある物凄い本だ。

著者は有名な山田 祥寛(ヤマダ ヨシヒロ)さん。

よくこんな本が書けると思う。

でもワテはまだ読んでいない。どこかの本屋さんで立ち読みしてみて良かったら買ってみるかな。

 

スポンサーリンク
ワテ推薦のプログラミングスクールで学ぶ
コメント募集

この記事に関して何か質問とか補足など有りましたら、このページ下部にあるコメント欄からお知らせ下さい。

C#Visual Studio
スポンサーリンク
warekoをフォローする
スポンサーリンク
われこ われこ

コメント