2009-06-10 10 views
73

सी # में महीने का नाम खोजने के बारे में कैसे जाता है? मैं int पर एक विशाल switch कथन या if कथन लिखना नहीं चाहता हूं। वीबी.Net में आप MonthName() का उपयोग कर सकते हैं, लेकिन सी # के बारे में क्या?सी # में महीने का नाम कैसे प्राप्त करें?

+0

की संभावित डुप्लिकेट [ग # में एक महीने के नाम में एक पूर्णांक चालू करने के लिए सबसे अच्छा तरीका है?] (Http://stackoverflow.com/questions/218908/best-way-to-turn-an- पूर्णांक-इन-ए-महीने-नाम-इन-सी) – bluish

उत्तर

143

आप CultureInfo का उपयोग माह नाम पाने के लिए कर सकते हैं। आप छोटे महीने के नाम के साथ-साथ अन्य मजेदार चीजें भी प्राप्त कर सकते हैं।

मैं सुझाव दूंगा कि आप इन्हें विस्तार विधियों में डाल दें, जो आपको बाद में कम कोड लिखने की अनुमति देगा। हालांकि आप हालांकि चाहें कार्यान्वित कर सकते हैं।

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); 
    } 
} 

आशा इस मदद करता है:

यहाँ कैसे विस्तार तरीकों का उपयोग कर यह करने के लिए का एक उदाहरण है!

+4

क्या मैं जोड़ सकता हूं कि एक 'InvariantInfo' प्रॉपर्टी है जिसका उपयोग भी किया जा सकता है। और, मेरी राय में, निम्नलिखित करने के लिए निम्नलिखित एक अधिक सरल/पठनीय प्रारूप है: 'DateTimeFormatInfo.InvariantInfo.GetAbbreviatedMonthName (...) 'या' DateTimeFormatInfo.CurrentInfo.GetAbbreviatedMonthName (...) ' – bsara

104

उपयोग "MMMM" फॉर्मेट स्पेसिफायर:

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

मानते हैं कि आपके पास तिथि है। यदि नहीं: 'var month = new dateTime (1, i, 1)। टोस्टरिंग (" एमएमएमएम ");' – Myster

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

आपको आवश्यकता नहीं है ToString()। –

+5

या स्ट्रिंग। वास्तव में, वास्तव में। बस डेटटाइम.अब। टॉस्ट्रिंग ("एमएमएमएम") सरल है। –

+1

मैंने सुझाव दिया होगा कि साथ ही, लेकिन आपके पास पहले से ही एक और जवाब था। गॉर्टोक की विधि स्वरूपण करने के लिए प्लेसहोल्डर्स के उपयोग को भी प्रदर्शित करती है, इसलिए मुझे लगता है कि यह एक अच्छा वैकल्पिक उदाहरण है। –

5

तुम सिर्फ MONTHNAME उपयोग करने के लिए तो संदर्भ Microsoft.VisualBasic चाहते हैं और यह 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

यह ओपी के सवाल का जवाब नहीं देता है, क्योंकि उन्होंने कहा: "मैं वास्तव में ** नहीं ** ** एक विशाल स्विच स्टेटमेंट लिखना चाहता हूं [...]" (जोर मेरा)। उत्तर लिखने से पहले कृपया विस्तार से प्रश्न पढ़ें। – honk

संबंधित मुद्दे