如何获取当年的月份列表,但列表应该只有当月之前的月份。
就像现在一样是2013年3月,然后列表应该包含2013年1月和2013年2月。当4月开始时,它应该有1月1日,2月,3月。
答案 0 :(得分:4)
Enumerable.Range(1, DateTime.Today.Month - 1)
.Select(m => new DateTime(DateTime.Today.Year, m, 1))
.ToList();
答案 1 :(得分:3)
也许:
var today = DateTime.Today;
var beforeMonths = Enumerable.Range(1, 12)
.Where(i => i < today.Month)
.Select(i => new DateTime(today.Year, i, 1))
.ToList();
答案 2 :(得分:1)
除了1月份返回空列表的结果(可能是你想要的)之外你可以使用:
Enumerable.Range(1,DateTime.Today.Month - 1)
.Select(i => new DateTime(DateTime.Today.Year,i,1));
或者如果你想要字符串表示使用
Enumerable.Range(1,DateTime.Today.Month - 1)
.Select(i => new DateTime(DateTime.Today.Year,i,1)
.ToString("MMM yyyy"));
答案 3 :(得分:0)
这将为您提供月份
static void Main(string[] args)
{
var months =
Enumerable.Range(1, DateTime.Now.Month-1).Select(
p => new DateTime(DateTime.Now.Year, p, 1));
foreach(var month in months)
Console.WriteLine(month.ToString("MMM yyyy"));
Console.ReadLine();
}
答案 4 :(得分:0)
试试这个:
var x = new[]
{"Jan", "Feb", "Mar",
"Apr", "May", "Jun",
"Jul", "Aug", "Sep",
"Oct", "Nov", "Dec"}.Take
(DateTime.Today.Month-1);
或者如果你想要一个具体的清单,
var x = new[]
{"Jan", "Feb", "Mar",
"Apr", "May", "Jun",
"Jul", "Aug", "Sep",
"Oct", "Nov", "Dec"}.Take
(DateTime.Today.Month-1).ToList();
答案 5 :(得分:0)
您可以通过
获得当前月份DateTime.Today.Month;
3月为3。
然后你可以从0循环到DateTime.Today.Month递增月份。
List<DateTime> months = new List<DateTime>();
for (int i = 0; i < DateTime.Now.Month; ++i)
{
months.Add(new DateTime(DateTime.Now.Year, i, 1));
}