2009-11-05 15 views
8

私はC#で月の配列を取得したいと思います。
このようなもの:{ January , February , ... , December }
どうすればいいですか? C#でコードを送ってください。 おかげCで月の配列を取得する方法#

答えて

31

あなたにもローカライズの問題に注意する必要があります。 あなたが使用することができます。

string[] monthNames = 
    System.Globalization.CultureInfo.CurrentCulture 
     .DateTimeFormat.MonthGenitiveNames; 

属格が属格で、いくつかの屈曲の言語で導入されますnoun inflection、非言語言語では、英語の前置詞 "of"に相当するものと一致します。たとえば、ロシア(ロシア)の「ru-RU」の日付は、日の数字と生まれた月の名前で構成されます。

More info…

EDIT:あなたは英語の月名が必要な場合は、en-US

Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US"); 
+0

英語の月間はどうすればいいですか? – LIX

+0

良い点!!! +1 –

+0

現在のカルチャをen-USとして設定する必要があります Thread.CurrentThread.CurrentCulture = new CultureInfo( "en-US"); を入力してから を使用します。[] monthNames = System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.MonthGenitiveNames; これによりコードのローカライズ準備が完了します – Ngm

8
string[] months = new string[] {"January", "February", "March", "April", "May", 
    "June", "July", "August", "September", "October", "November", "December"}; 
+1

うん、あなたは何を意味するか書くと間違って何ですか?キスをする方法を覚えておくための拍手を送りたい。 –

+0

あなたも[ '新しい文字列を必要としません] {'、' new [] {'は行います。 – Yogesh

14
string[] monthNames = System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.MonthNames; 

foreach (string m in monthNames) // writing out 
{ 
    Console.WriteLine(m); 
} 

出力:

January 
February 
March 
April 
May 
June 
July 
August 
September 
October 
November 
December 

アップデート:
異なるロケール/文化のために、出力が英語でない場合がありますのでご注意ください。前にそれをテストしていない。米国英語の場合

のみ:

string[] monthNames = (new System.Globalization.CultureInfo("en-US")).DateTimeFormat.MonthNames; 
+0

こんにちは ロシア語のようなMonthNamesのような言語の使用については注意が必要です。 – Ngm

+0

の下の投稿を見てください。Ngmの 'MonthGenitiveNames'メソッドは、文脈によってはもっと適しています。 –

+0

OK、 "en-US' cultureinfo"を追加しました月名 –

6

うまくいけば、あなたはシーケンシャル用に作成するレンジ機能を適用する方法を教えて代替として、あなたの現在のカルチャを設定することができますもの。

var startDate = new DateTime(2014,1,1); 
var months = Enumerable.Range(0,11) 
         .Select(startDate.AddMonths); 
         .Select(m => m.ToString("yyyy MMMM")) 
         .ToList(); 

何それはDateTimeオブジェクト(たstartDate)を作成し、自分自身に対する他のすべての日付を生成するために、そのオブジェクトを使用しているやっています。

  1. Enumerable.Range(0,11)は、整数{0,1,2,3,4,5,6,7,8,9,10,11}

  2. のリストを作成しますSelect(startDate.AddMonths)は、これらの整数のそれぞれを1月から12月の日付のリストを生成するstartDateのAddMonths関数に送ります。

  3. 選択(M => m.ToString( "YYYY MMMM")は、1月から12月までの日付のそれぞれを受け取り、フォーマットされた文字列(ここでは "2014 1月" に変換)

  4. ToListメソッド()すべての機能を評価し、文字列のリストとして返します。

+0

月名を取得する最良の方法ではありませんが、代替ソリューションとして間違いなく素晴らしいです。良い努力と説明のために+1。 – Kagawa

関連する問題