Pages

2011/01/24

C#で曜日を取得する

日付型から曜日を取得するということを考えたとき、以下のようにするのが一番簡単である。
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

ちなみに、英語表記でもこのように指定すれば省略形を取ることができる。
もちろん他の言語でも指定できるので、いろいろと使うことができるだろう。
Related Posts Plugin for WordPress, Blogger...