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

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

このブログの人気の投稿

コピーした行の挿入が表示されない時はフィルタされていないかチェック

Excel で一部の図形だけ固定する