如何从 c# windows 中的月日历控件中查找两个选定日期之间的月数?

How to find Number of months between two selected dates from month Calendar control in c# windows?

如何在 c# windows 中从月日历控件中查找两个选定日期之间的月数? 比我想用该数据填充文本框 'Total Month'。 我在下面附上了屏幕截图。

[![Windows Form][1]][1]

你的问题有点含糊,所以如果答案对你的需求来说有点不准确,请不要感到惊讶。

在获得两个日期之间的月数之前,您的第一个挑战是您需要获得两个日期作为起始日期。

在 C# Winforms 应用程序中,您可以双击日历控件,以便 Visual Studio 生成 onDateChanged 事件处理程序。

双击您的每个日历控件和类似的内容:

        private DateTime startDate;
        private void dateTimePicker1_ValueChanged(object sender, EventArgs e)
        {
            startDate = dateTimePicker1.Value;
        }

        private DateTime endDate;
        private void dateTimePicker2_ValueChanged(object sender, EventArgs e)
        {
            endDate = dateTimePicker2.Value;
        }

现在,一旦您有了两个日期,实际计算两点之间的月份就会变得复杂。 简单的 TimeSpan 对象不提供对 TotalMonths 方法的访问,但如果您愿意,可以编写这样的扩展方法。

各种 Whosebug 页面处理给定日期时间之间总月数的计算。 使用上面的代码获取您的两个日期,然后使用以下页面上的代码执行计算。

How can I calculate the numbers of month between two dates in C#

calculating the difference in months between two dates

我特别喜欢这个解决方案:

        public static int MonthDifference(this DateTime lValue, DateTime rValue)
        {
            return Math.Abs((lValue.Month - rValue.Month) + 12 * (lValue.Year - rValue.Year));
        }

您应该能够执行

int totalMonths = date1.MonthDifference(date2);