如何从DateTime.Now生成带有年份的前6个月的列表

Par*_*lia 7 c# asp.net-mvc

我是.net MVC的新手.如何在.net MVC中生成过去6个月的列表.唯一的东西是DateTime.Now,我需要

ViewBag.Months=List of months with years

JTW*_*JTW 24

您可以使用Enumerable.Range lambda表达式创建DateTime值列表.您需要使用ToString("MM/yyyy")对枚举中的每个值提取月/年字符串.看一下这个小提琴的工作示例:https://dotnetfiddle.net/5CQNnZ


var lastSixMonths = Enumerable.Range(0, 6)
                              .Select(i => DateTime.Now.AddMonths(i - 6))
                              .Select(date => date.ToString("MM/yyyy"));
Run Code Online (Sandbox Code Playgroud)


Chr*_*att 6

这就是你所需要的.

var now = DateTimeOffset.Now;
ViewBag.Months = Enumerable.Range(1, 6).Select(i => now.AddMonths(-i).ToString("MM/yyyy"));
Run Code Online (Sandbox Code Playgroud)

示例输出(截至2016年2月):

01/2016 
12/2015 
11/2015 
10/2015 
09/2015 
08/2015 
Run Code Online (Sandbox Code Playgroud)

您不需要首先设置now变量,但它确实可以确保您不会在处理过程中滚动到新的月份.这将是一个极不可能的错误,但可能会发生.