如何从 DateTime.Now 生成过去 6 个月的年份列表

本文关键字:列表 过去 DateTime Now | 更新日期: 2023-09-27 18:34:02

我对.net MVC很陌生。如何在 .net MVC 中生成过去 6 个月的年份列表。唯一有的是日期时间.现在我需要

ViewBag.Months=List of months with years

如何从 DateTime.Now 生成过去 6 个月的年份列表

您可以使用 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"));

这就是你所需要的。

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

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

01/2016 
12/2015 
11/2015 
10/2015 
09/2015 
08/2015 

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