C#で曜日を取得する
日付型から曜日を取得するということを考えたとき、以下のようにするのが一番簡単である。
これでOKなら一番楽なのだが、日本語で取りたいんだよ!ということの方が多いだろう。
そんなときはCultureInfoクラスでカルチャを指定することができるのだ。
カルチャ名はMSDNの以下のページから参照してほしい。
http://msdn.microsoft.com/ja-jp/library/system.globalization.cultureinfo(v=vs.71).aspx
では、日付にどうやってセットするのよ?
というと、カスタム書式で指定するときに引数として指定する。
ちなみに、このパターンにおいて、カルチャの指定を、
CultureInfo info = new CultureInfo("ja");
とするとエラーとなる。
カルチャ 'ja' はニュートラル カルチャです。フォーマットや解析に使用できません、スレッドの現在のカルチャとして設定することもできません。
といった具合に。
ちなみに、英語表記でもこのように指定すれば省略形を取ることができる。
もちろん他の言語でも指定できるので、いろいろと使うことができるだろう。
DateTime dt = DateTime.Now; Console.WriteLine(dt.DayOfWeek); // 結果 // Monday英語表記である。
これでOKなら一番楽なのだが、日本語で取りたいんだよ!ということの方が多いだろう。
そんなときはCultureInfoクラスでカルチャを指定することができるのだ。
using System.Globalization; // 日本をセット CultureInfo info = new CultureInfo("ja-JP");まず、こんな感じでセットする。
カルチャ名はMSDNの以下のページから参照してほしい。
http://msdn.microsoft.com/ja-jp/library/system.globalization.cultureinfo(v=vs.71).aspx
では、日付にどうやってセットするのよ?
というと、カスタム書式で指定するときに引数として指定する。
DateTime dt = DateTime.Now; CultureInfo info = new CultureInfo("ja-JP"); Console.WriteLine(dt.ToString("dddd", info)); // 結果 // 月曜日「ddd」だと、省略形になる。上記の場合だと「月」と表示されるはずだ。
ちなみに、このパターンにおいて、カルチャの指定を、
CultureInfo info = new CultureInfo("ja");
とするとエラーとなる。
カルチャ 'ja' はニュートラル カルチャです。フォーマットや解析に使用できません、スレッドの現在のカルチャとして設定することもできません。
といった具合に。
DateTime dt = DateTime.Now; CultureInfo info = new CultureInfo("en-US"); Console.WriteLine(dt.ToString("ddd", info)); // 結果 // Mon
ちなみに、英語表記でもこのように指定すれば省略形を取ることができる。
もちろん他の言語でも指定できるので、いろいろと使うことができるだろう。