[英]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.