关于.net:如何查找c#windows中每月日历控件中两个选定日期之间的月份数?

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

enter image description here如何在c_windows中从月历控件中查找两个选定日期之间的月数?我不想用这些数据填充文本框'total month'。我把截图贴在下面。

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


你的问题有点含糊,所以如果答案有点符合你的需要,不要惊讶。

你在这里的第一个挑战是,在你得到两个日期之间的月数之前,你需要从两个日期开始。

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

对每个日历控件执行双击,如下所示:

1
2
3
4
5
6
7
8
9
10
11
        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方法的访问,但是,如果您愿意,可以编写这样的扩展方法。

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

我怎样用C语言计算两个日期之间的月份数#

计算两个日期之间的月份差异

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

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

你应该能表演

1
int totalMonths = date1.MonthDifference(date2);