Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 获取当前年度的月份列表,但当前月份之前的月份_C#_Asp.net_C# 4.0_.net 4.0 - Fatal编程技术网

C# 获取当前年度的月份列表,但当前月份之前的月份

C# 获取当前年度的月份列表,但当前月份之前的月份,c#,asp.net,c#-4.0,.net-4.0,C#,Asp.net,C# 4.0,.net 4.0,如何获取当前年度的月份列表,但该列表应仅包含当前月份之前的月份 就像现在是2013年3月一样,该列表应包含2013年1月和2013年2月。4月开始的时候应该是1月、2月、3月。也许: var today = DateTime.Today; var beforeMonths = Enumerable.Range(1, 12) .Where(i => i < today.Month) .Select(i => new DateTime

如何获取当前年度的月份列表,但该列表应仅包含当前月份之前的月份

就像现在是2013年3月一样,该列表应包含2013年1月和2013年2月。4月开始的时候应该是1月、2月、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();
var today=DateTime.today;
var beforeMonths=可枚举范围(1,12)
.Where(i=>inewdatetime(today.Year,i,1))
.ToList();

除了一月份返回空列表(可能是您想要的)的结果之外,您还可以使用:

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"));

这将给你一个月的时间

    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();
    }
试试这个:

 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();

您可以通过以下方式获取当前月份:

DateTime.Today.Month;
三月份是三点

然后可以从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));
}
列表月份=新列表();
对于(int i=0;i
谢谢!!!它确实给出了答案,但我试着用字符串形式来表示这个月。谢谢蒂姆的回答,但我试着用字符串形式。但是谢谢你的回答。
List<DateTime> months = new List<DateTime>();

for (int i = 0; i < DateTime.Now.Month; ++i)
{
     months.Add(new DateTime(DateTime.Now.Year, i, 1));
}