Bagaimana cara menemukan nama bulan di C #? Saya tidak ingin menulis switchpernyataan atau ifpernyataan besar di bulan tersebut int. Di VB.Net Anda bisa menggunakan MonthName(), tapi bagaimana dengan C #?
Anda dapat menggunakan CultureInfo untuk mendapatkan nama bulan. Anda bahkan bisa mendapatkan nama bulan pendek serta hal-hal menyenangkan lainnya.
Saya akan menyarankan Anda memasukkan ini ke dalam metode ekstensi, yang akan memungkinkan Anda untuk menulis lebih sedikit kode nanti. Bagaimanapun Anda dapat menerapkannya sesuka Anda.
Berikut adalah contoh cara melakukannya menggunakan metode ekstensi:
Boleh saya tambahkan bahwa ada InvariantInfoproperti yang bisa digunakan juga. Dan, menurut saya, berikut ini adalah format yang lebih sederhana / mudah dibaca untuk melakukan ini: DateTimeFormatInfo.InvariantInfo.GetAbbreviatedMonthName(...)atauDateTimeFormatInfo.CurrentInfo.GetAbbreviatedMonthName(...)
Atau String.Format, sebenarnya. Just DateTime.Now.ToString ("MMMM") lebih sederhana.
Jon Skeet
1
Saya akan menyarankan itu juga, tetapi Anda sudah memiliki itu sebagai jawaban lain. Metode Gortok juga mendemonstrasikan penggunaan placeholder untuk melakukan pemformatan, jadi menurut saya ini adalah contoh alternatif yang baik.
Richard Anthony Hein
7
Jika Anda hanya ingin menggunakan MonthName, rujuk Microsoft.VisualBasic dan ada di Microsoft.VisualBasic.DateAndTime
//eg. Get January
String monthName = Microsoft.VisualBasic.DateAndTime.MonthName(1);
Ini tidak menjawab pertanyaan OP, karena mereka berkata: "Saya benar-benar tidak ingin menulis pernyataan saklar besar [...]" (penekanan saya). Harap baca pertanyaan secara detail sebelum menulis jawaban.
Jawaban:
Anda dapat menggunakan CultureInfo untuk mendapatkan nama bulan. Anda bahkan bisa mendapatkan nama bulan pendek serta hal-hal menyenangkan lainnya.
Saya akan menyarankan Anda memasukkan ini ke dalam metode ekstensi, yang akan memungkinkan Anda untuk menulis lebih sedikit kode nanti. Bagaimanapun Anda dapat menerapkannya sesuka Anda.
Berikut adalah contoh cara melakukannya menggunakan metode ekstensi:
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); } }
Semoga ini membantu!
sumber
InvariantInfo
properti yang bisa digunakan juga. Dan, menurut saya, berikut ini adalah format yang lebih sederhana / mudah dibaca untuk melakukan ini:DateTimeFormatInfo.InvariantInfo.GetAbbreviatedMonthName(...)
atauDateTimeFormatInfo.CurrentInfo.GetAbbreviatedMonthName(...)
Gunakan penentu format "MMMM":
string month = dateTime.ToString("MMMM");
sumber
var month = new DateTime(1,i,1).ToString("MMMM");
string CurrentMonth = String.Format("{0:MMMM}", DateTime.Now)
sumber
Jika Anda hanya ingin menggunakan MonthName, rujuk Microsoft.VisualBasic dan ada di Microsoft.VisualBasic.DateAndTime
//eg. Get January String monthName = Microsoft.VisualBasic.DateAndTime.MonthName(1);
sumber
Misalkan tanggal Anda hari ini. Semoga ini bisa membantu Anda.
DateTime dt = DateTime.Today; string thisMonth= dt.ToString("MMMM"); Console.WriteLine(thisMonth);
sumber
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; }
sumber