Itenso.TimePeriod.DateDiff.CalcMonths C# (CSharp) Метод

CalcMonths() приватный Метод

private CalcMonths ( ) : int
Результат int
        private int CalcMonths()
        {
            if ( TimeCompare.IsSameDay( date1, date2 ) )
            {
                return 0;
            }

            int compareDay = date2.Day;
            int compareDaysPerMonth = calendar.GetDaysInMonth( Year1, Month1 );
            if ( compareDay > compareDaysPerMonth )
            {
                compareDay = compareDaysPerMonth;
            }

            DateTime compareDate = new DateTime( Year1, Month1, compareDay,
                date2.Hour, date2.Minute, date2.Second, date2.Millisecond );
            if ( date2 > date1 )
            {
                if ( compareDate < date1 )
                {
                    compareDate = compareDate.AddMonths( 1 );
                }
            }
            else
            {
                if ( compareDate > date1 )
                {
                    compareDate = compareDate.AddMonths( -1 );
                }
            }
            return
            ( ( Year2 * TimeSpec.MonthsPerYear ) + Month2 ) -
            ( ( calendar.GetYear( compareDate ) * TimeSpec.MonthsPerYear ) + calendar.GetMonth( compareDate ) );
        }