【问题标题】:Calculate the months between 2 dates C#计算两个日期之间的月份 C#
【发布时间】:2014-02-28 19:35:24
【问题描述】:

计算两个日期之间月份的最​​佳方法是什么。我不需要数字而是实际月份。

最好的方法是什么。

Given 2 dates May 1 2008 and August 3 2008 , I should get May , June , July, August.
or 

Nov 1st 2009 and April 3rd 2010 ==> Nov ,Dec, Jan ,Feb , Mar,April .

【问题讨论】:

  • 您不需要号码吗?那么你需要什么?之间的月份列表?举几个例子。
  • 我想他可能正在寻找,如果有人提供 2006 年 6 月 17 日和 2006 年 8 月 23 日,那么它会输出“June, July, August”?
  • 是的@sean 是正确的。
  • 如果日期颠倒了怎么办?你想要回复反转吗?例如,“2006 年 8 月 23 日”和“2006 年 6 月 17 日”将输出“8 月、7 月、6 月”。还是超过 1 年?
  • 我假设日期是最小到最大。

标签: c# date


【解决方案1】:

计算年份:

 DateTime one =  new DateTime(2006, 06, 16),  two = new DateTime(2007, 08, 23);
 if (two > one)
 {
     int firstMonth = one.Month;
     int secondMonth = two.Month + 12 * (two.Year - one.Year);

     var months = new List<string>();
     for (int i = firstMonth; i <= secondMonth; i++)
     {
        months.Add(CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName((i -1) % 12 + 1));
     }
  }

当然,构建反转它的案例非常简单。

【讨论】:

    【解决方案2】:
    DateTime start = new DateTime(2009, 11, 1);
    DateTime end = new DateTime(2010, 4, 1);
    
    for(var dt = start; dt <= end; dt = dt.AddMonths(1))
    {
        Console.WriteLine(dt.ToString("MMM",CultureInfo.InvariantCulture));
    }
    

    【讨论】:

      猜你喜欢
      • 2022-11-18
      • 2023-04-06
      • 2017-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多