2012-07-03 59 views
2

我想創建一個博客應用程序的存檔列表。我有有此代碼段一教職員模型:c#有沒有一個簡單的方法來將月份整數轉換爲名稱

@model IEnumerable<NPLHBlog.Models.ArchiveListModels> 
... 
     @foreach (var item in Model) 
     { 
      <li>@item.ArchiveMonth/@item.ArchiveYear : @item.PostCount</li> 
     } 
... 

我試圖打印item.ArchiveMonth爲「1」,而不是「揚」。

的ArchiveListModel如下:

public class ArchiveListModels 
{ 
    public int ArchiveYear { get; set; } 
    public int ArchiveMonth { get; set; } 
    public int PostCount { get; set; } 
} 

和博客從存儲庫中讀取如下:

public IQueryable<ArchiveListModels> ArchiveList() 
    { 
     var archiveList = from blogs in db.Blogs 
          group blogs by new { blogs.PublishDate.Year, blogs.PublishDate.Month } 
           into dateGroup 
           select new ArchiveListModels() 
           { 
            ArchiveYear = dateGroup.Key.Year, 
            ArchiveMonth = dateGroup.Key.Month, 
            PostCount = dateGroup.Count() 
           }; 
     return archiveList; 
    } 

非常感謝。

+0

的可能重複[有沒有在.NET庫月份預定枚舉?](http://stackoverflow.com/questions/899565/is-there-a-predefined-enumeration-for-month -in-the-net-library) – DaveShaw

+0

不是重複的問題,但我認爲答案會有所幫助。 – DaveShaw

回答

4

要獲取完整的月份名稱

int month = 1; 
System.Globalization.CultureInfo.CurrentUICulture.DateTimeFormat.GetMonthName(month); 

或者你可以使用的時間字符串格式:

int month = 1; 
var dt = new DateTime(2012, month, 1): 
var monthAbbr = dt.ToString("MMM"); 

或者你可以做一個查找對縮寫列表

int month = 1; 
var monthAbbr =  System.Globalization.CultureInfo.CurrentUICulture.DateTimeFormat.AbbreviatedMonthNames[month]; 
+0

另一個很好的知道! –

+0

我不得不使用[month-1]作爲第三個選項來給我正確的縮寫月份。 – Tripping

11
CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(1); 

或abrev

CultureInfo.CurrentUICulture.DateTimeFormat.AbbreviatedMonthNames[1]; 
+0

比我正在研究的更好的解決方案.... –

+0

我不認爲這會返回縮寫名稱,但很高興知道。 –

+0

取縮寫名稱使用3個符號 –

3

我相信你想:

.ToString("MMM"); 

你甚至可以創建自己的DateTime對象爲特定的月份:

DateTime jan = new DateTime(2012, 1, 1); 
return jan.Date.ToString("MMM"); 
0

如果你想使用ViewBags從DATAS你的數據庫你也可以很容易地使用這種格式。請記住。

@foreach (var item in ViewBag.HealthCare) 
{ 
    @item.Created_Date.ToString("MMMM yyyy") 

} 
相關問題