簡體   English   中英

從WPF / C#中以自定義格式從System.DateTime獲取給定月份的天收集

[英]Getting a days collection from System.DateTime for a given month in custom format in WPF/C#

我希望以以下格式獲取天數列表:1月1日,1月3日..... 1月30日,1月31日。

我可以通過調用DateTime.DaysInMonth(2013,01);自行生成此集合。 但這只給我“ 31”,因此我將不得不遍歷它們並生成集合。 但是已經有任何自定義方法可以輕松或簡單地實現此目的。

謝謝

嘗試使用下一個代碼段。 考慮使用MMM DateTime模式提取月份名稱

Enumerable.Range(1, DateTime.DaysInMonth(2012, 1))
          .Select(num => num +" Jan");

退貨

1 Jan 
2 Jan 
3 Jan 
...
30 Jan 
31 Jan 

編輯:要提取月份名稱,可以使用下一個代碼段

var start = new DateTime(2012, 1, 1);
Enumerable.Range(0, DateTime.DaysInMonth(2012, 1))
          .Select(days => start.AddDays(days))
          .Select(day => day.ToString("d MMM")); // returns the same

您可以使用Linq:

DateTime date = new DateTime(2013, 1, 1);
var cal = System.Globalization.CultureInfo.CurrentCulture.Calendar;
List<String> monthDates = Enumerable.Range(0, cal.GetDaysInMonth(date.Year, date.Month))
    .Select(i => date.AddDays(i).ToString("MMM d"))
    .ToList();

演示版

我認為沒有任何內置方法可以執行此操作,但是您可以輕松地執行以下操作:

DateTime.DaysInMonth(2013, 01).Select(x=> "Jan " + x.Tostring()).ToList();

您將看到如何輕松地進行參數設置並利用此功能來獲得不同的月份。

根據上述Ilya Ivanov的答案,如果您希望列表顯示格式為“ Jan ??”,則可以執行以下操作:

var list = Enumerable.Range(1, DateTime.DaysInMonth(2012, 1)).Select(num => "Jan " + num);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM