C # 'da bir tamsayıyı ay adına dönüştürmenin en iyi yolu?


123

Bir tamsayıyı .net olarak ay adına dönüştürmenin en iyi yolu var mı?

Açıkçası, onu dizmek ve oradan ay adını ayrıştırmak için bir tarih saat döndürebilirim. Bu çok büyük bir zaman kaybı gibi görünüyor.

Yanıtlar:



20

Neden sadece kullanmıyorsun somedatetime.ToString("MMMM")?


1
Yani ne zaman 1'i Ocak'a çevirmem gerekirse, sadece Ocak ayına girmek için rasgele bir yıl ve gün ile bir tarih saati yenilemem gerekiyor mu?
DevelopingChris

1
Bu doğru, bonus olarak istediğiniz herhangi bir yerelleştirilebilir dilde sahip olabilirsiniz :)
leppie

20

Doğru ad alanı ve nesne ile güncellendi:

//This was wrong
//CultureInfo.DateTimeFormat.MonthNames[index];

//Correct but keep in mind CurrentInfo could be null
DateTimeFormatInfo.CurrentInfo.MonthNames[index];

1
Bu çalışmıyor. Nick Berardi doğru cevabı verdi.
kuzgun

1
şu andan itibaren önce cevaplarımı derlemeye çalışacağım
Ovidiu Pacurar

Bunun eski bir soru olduğunun farkına vararak, Nick Berandi tarafından sağlanan kabul edilen cevabın daha doğru olduğuna hala işaret etmek istiyorum (en azından Microsoft'un uygulaması için - Mono hakkında emin değilim), çünkü MonthNames özelliği her zaman ay isimleri dizisini klonlayarak her şey biraz daha az verimli.
AASoft

7

Microsoft.VisualBasicAd alanından statik bir yöntem kullanabilirsiniz :

string monthName = Microsoft.VisualBasic.DateAndTime.MonthName(monthInt, false);

6
DateTime dt = new DateTime(year, month, day);
Response.Write(day + "-" + dt.ToString("MMMM") + "-" + year);

Bu şekilde, ayınız tamsayı ile değil adıyla görüntülenecektir.


2

Kısaltılmış ay değeri elde etmek için kullanabilirsiniz Enum.Parse();

Enum.Parse(typeof(Month), "0");

Bu sonuç olarak "Jan" üretecektir.

Bunun sıfır tabanlı bir indeks olduğunu unutmayın.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.