Esempio n. 1
0
        /// <summary>
        /// The number of complete months in the period, return a double value.
        /// </summary>
        /// <param name="start"></param>
        /// <param name="end"></param>
        /// <returns></returns>
        public static double ExactMonthDiff(DateTime start, DateTime end)
        {
            DateTime _start, _end;

            if (start <= end)
            {
                _start = start;
                _end   = end;
            }
            else
            {
                _start = end;
                _end   = start;
            }

            var diff     = PrivateMonthDiff(_start, _end);
            var endStart = start.AddCompleteMonths(diff);
            var endEnd   = endStart.AddCompleteMonths(1);

            return(diff + (end - endStart).TotalDays / (endEnd - endStart).TotalDays);
        }