📌  相关文章
📜  获取两个日期之间的月份和年份列表c#(1)

📅  最后修改于: 2023-12-03 15:27:48.830000             🧑  作者: Mango

获取两个日期之间的月份和年份列表

在开发过程中,我们可能需要获取两个日期之间所有的月份和年份,本文将介绍如何使用C#来实现。

实现思路

我们可以先获取两个日期之间相差的月份数,根据相差的月份数依次添加月份和年份到列表中。使用C#的DateTime类来实现。

代码实现
public static List<string> GetMonthAndYearList(DateTime startDate, DateTime endDate)
{
    List<string> monthAndYearList = new List<string>();
    int monthCount = ((endDate.Year - startDate.Year) * 12) + endDate.Month - startDate.Month + 1;

    for (int i = 0; i < monthCount; i++)
    {
        DateTime thisMonth = startDate.AddMonths(i);
        string monthAndYear = thisMonth.ToString("yyyy-MM");
        monthAndYearList.Add(monthAndYear);
    }

    return monthAndYearList;
}
代码解析
  • GetMonthAndYearList 是一个静态方法,用于获取月份和年份列表。
  • monthAndYearList 是一个字符串列表,用于存储月份和年份。
  • startDate 是开始日期。
  • endDate 是结束日期。
  • monthCount 是两个日期之间相差的月份数。
  • 使用 for 循环依次遍历月份,并将每个月份添加到列表中。
  • thisMonth 是当前的月份。
  • monthAndYear 是当前月份的年份和月份,格式为 yyyy-MM
  • monthAndYear 添加到列表中。
  • 返回 monthAndYearList
使用示例
static void Main(string[] args)
{
    DateTime startDate = new DateTime(2021, 1, 1);
    DateTime endDate = new DateTime(2021, 6, 1);

    List<string> monthAndYearList = GetMonthAndYearList(startDate, endDate);

    foreach (string monthAndYear in monthAndYearList)
    {
        Console.WriteLine(monthAndYear);
    }

    Console.ReadKey();
}

输出:

2021-01
2021-02
2021-03
2021-04
2021-05
2021-06
总结

本文介绍了如何使用C#获取两个日期之间的月份和年份列表,实现起来非常简单。这个方法可以用于生成月份或者年份报表,或者其它需要按月份或者年份统计的业务需求。