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

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

新規登録して質問してみよう
ただいま回答率
85.49%
Entity Framework

Entity Frameworkは、.NET Framework 3.5より追加されたデータアクセス技術。正式名称は「ADO.NET Entity Framework」です。データベースエンジンに依存しておらず、データプロバイダの変更のみで様々なデータベースに対応できます。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

ASP.NET MVC Framework

ASP.NET MVC Frameworkは、MVCパターンをベースとした、マイクロソフトのウェブアプリケーション開発用のフレームワークです。

Q&A

解決済

1回答

5961閲覧

ASP.NET MVC5 DateTime型から祝日の判定をする

blackdifferent

総合スコア25

Entity Framework

Entity Frameworkは、.NET Framework 3.5より追加されたデータアクセス技術。正式名称は「ADO.NET Entity Framework」です。データベースエンジンに依存しておらず、データプロバイダの変更のみで様々なデータベースに対応できます。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

ASP.NET MVC Framework

ASP.NET MVC Frameworkは、MVCパターンをベースとした、マイクロソフトのウェブアプリケーション開発用のフレームワークです。

0グッド

0クリップ

投稿2018/12/17 06:59

編集2019/01/08 01:46

こんにちわ。
ASP.NET FRAMEWORK(VisualStudio2017)でWeb勤務表を作成しています。https://teratail.com/questions/163470の続きです。

勤務表入力画面のカレンダーで、添付図のように土曜は青、日祝は赤に文字色を変えたいのですが、祝日の取得方法がわかりません(土日は出来ました)。

どなたかDateTime型から祝日を識別する方法をご存じの方がいましたら教えてください。イメージ説明

View

@model Kintai_CS_.Models.KintaiModel @{ /**/ ViewBag.Title = "勤務表"; Layout = "~/Views/Shared/_Layout.cshtml"; Dictionary<int, SelectList> dictionary = (Dictionary<int, SelectList>)ViewBag.Situation; } @using (Html.BeginForm()) { @Html.AntiForgeryToken() <header id="header" class="header"> ・・・   </header> <body id="body" class="body"> ・・・     <table class="table"> <tr> <th> <nobr>日付</nobr> </th> <th> <nobr>曜日</nobr> </th> ・・・ </tr> @for (int i = 0; i < Model.Kintais.Count; i++) { int idx = i; <tr> @{ string week = Model.Kintais[idx].date.ToString("ddd"); if (week == "土") { <td><div style="color:blue">@(idx+1)</div></td> <td><div style="color:blue">@week</div></td> } else if (week == "日") { <td><div style="color:red">@(idx + 1)</div></td> <td><div style="color:red">@week</div></td> } else { <td>@(idx+1)</td> <td>@week</td> } } <td> @Html.EditorFor(model => model.Kintais[idx].open, new { htmlAttributes = new { @class = "form-control", style = "width:80px" } }) @Html.ValidationMessageFor(model => model.Kintais[idx].open, "", new { @class = "text-danger" }) </td> ・・・ </tr> } </table> </body> }

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

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

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

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

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

guest

回答1

0

ベストアンサー

こんにちは。

祝日というのは、機械的に決定できるカレンダーとは違って人が決めているものなので、どこかから祝日情報を入手するか、自分で毎年設定する必要があります。
祝日情報はGoogleCalendarが提供しているものがあるようなので、そちらを利用してみるのはいかがでしょうか。利用例等はググると記事がいくつか出てきますが、自分は使ったことはないため、詳しいことは調べるとよいです。

Google Calendar API

投稿2018/12/17 07:08

tamoto

総合スコア4103

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

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

blackdifferent

2018/12/17 07:12

回答ありがとうございます。確認してみます。
len_souko

2018/12/17 14:17

https://iwb.jp/javascript-new-date-is-holiday-check/ こちらはJavaScriptですが、同じくweb上から取得する方式ですね 実際、計算する方式のサイトでは山の日が8月11日固定となっていますが、2020年はオリンピックに配慮して8月10日へずれるそうです 西暦4000年とかで現行のままなら多分休祝日になるって程度のゆるい判定なら計算でも良いのかもしれませんが、勤務表のためというのであれば休祝日判定が間違うのはまずいでしょう 僕のリンクからは内閣府のwebサイトから取得する形になっていますので、1か月1回程度の頻度で取得してローカルのDBへ格納するというのも手かもしれません 直近のデータしかありませんので、古いものは適当にググって一覧を取得してからずれが無いかを確認するしかないかもしれません
YAmaGNZ

2018/12/17 14:33

勤務表であれば、カレンダーにはない会社の休み(年末年始とかお盆休みとか)もあるでしょうから、休日をDBに持った方がすっきりするのではないかと思います。 で、休日のマスターメンテナンス機能として、旗日を自動取得するような機能をつけるのがいいのかなと思います。
blackdifferent

2018/12/18 01:04

皆様ご回答いただきありがとうございます。 会社で毎年年間スケジュールが出ているので、祝日をDBに入れて判定するのが一番早くて簡単なのかなと思いました。 大変参考になる意見をありがとうございました。
blackdifferent

2018/12/18 07:33

DBに祝日を登録する方法で実装できましたので、解決とさせていただきます。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問