2009-06-10 12 views
73

C#で月の名前を見つける方法を教えてください。月額の声明、またはintifの声明を書こうとは思わない。 VB.NetではMonthName()を使用できますが、C#についてはどうですか?あなたは月の名前を取得するためのCultureInfoを使用することができますC#で月の名前を取得するには?

string month = dateTime.ToString("MMMM"); 
+0

の可能性のある重複した[C#での月名に整数を回すための最良の方法?](http://stackoverflow.com/questions/218908/best-way-to-turn-an-あなたが日付を持っていると仮定して、 – bluish

答えて

143

+4

私は、同様に使うことができる 'InvariantInfo'プロパティがあると付け加えます。そして、私の意見では、以下は、これを行うためのよりシンプルで読みやすい形式です: 'DateTimeFormatInfo.InvariantInfo.GetAbbreviatedMonthName(...)'または 'DateTimeFormatInfo.CurrentInfo.GetAbbreviatedMonthName(...)' – bsara

104

は "MMMM" 書式指定子を使用します。あなたは短い月の名前だけでなく、他の楽しいものを得ることができます。

私はこれらを拡張メソッドに入れておくことをお勧めします。これにより、あとで少ないコードを書くことができます。しかし、好きなだけ実装できます。ここで

は、拡張メソッドを使用してこれを行う方法の例です:

using System; 
using System.Globalization; 

class Program 
{ 
    static void Main() 
    { 

     Console.WriteLine(DateTime.Now.ToMonthName()); 
     Console.WriteLine(DateTime.Now.ToShortMonthName()); 
     Console.Read(); 
    } 
} 

static class DateTimeExtensions 
{ 
    public static string ToMonthName(this DateTime dateTime) 
    { 
     return CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(dateTime.Month); 
    } 

    public static string ToShortMonthName(this DateTime dateTime) 
    { 
     return CultureInfo.CurrentCulture.DateTimeFormat.GetAbbreviatedMonthName(dateTime.Month); 
    } 
} 

は、この情報がお役に立てば幸い!

+16

という月に整数を入力してください。そうでなければ: 'var month = new DateTime(1、i、1).ToString(" MMMM ");' – Myster

9
string CurrentMonth = String.Format("{0:MMMM}", DateTime.Now) 
+0

あなたはToString()。 –

+5

または実際にはString.Format。ちょうどDateTime.Now.ToString( "MMMM")は簡単です。 –

+1

私もそれを示唆していたでしょうが、すでに別の答えとしてそれを持っていました。 Gortokの方法では、プレースホルダを使用して書式設定を行う方法も示しているので、良い代替例だと思います。 –

5

あなたはちょうどそのMicrosoft.VisualBasicを参照MONTHNAMEを使用したいと、それはあなたの日が今日であると仮定するとMicrosoft.VisualBasic.DateAndTime

//eg. Get January 
String monthName = Microsoft.VisualBasic.DateAndTime.MonthName(1); 
4

だ場合。これがあなたを助けることを願っています

DateTime dt = DateTime.Today; 

string thisMonth= dt.ToString("MMMM"); 

Console.WriteLine(thisMonth); 
-7
private string MonthName(int m) 
    { 
     string res; 
     switch (m) 
     { 
      case 1: 
       res="Ene"; 
       break; 
      case 2: 
       res = "Feb"; 
       break; 
      case 3: 
       res = "Mar"; 
       break; 
      case 4: 
       res = "Abr"; 
       break; 
      case 5: 
       res = "May"; 
       break; 
      case 6: 
       res = "Jun"; 
       break; 
      case 7: 
       res = "Jul"; 
       break; 
      case 8: 
       res = "Ago"; 
       break; 
      case 9: 
       res = "Sep"; 
       break; 
      case 10: 
       res = "Oct"; 
       break; 
      case 11: 
       res = "Nov"; 
       break; 
      case 12: 
       res = "Dic"; 
       break; 
      default: 
       res = "Nulo"; 
       break; 
     } 
     return res; 
    } 
+8

これはOPの質問には答えません。「本当に**私は巨大なswitch文[...]を書いてはいけません。回答を書く前に、質問を詳しくお読みください。 – honk

関連する問題