public decimal GetInterestRate(DateTime start, DateTime end) { //Console.WriteLine("-start: {0}, end: {1}", start, end); var rate = 0m; for (var start2 = start.AddMonths(1); start2 <= end; ) { Console.WriteLine("---start: {0}, end: {1}", start, end); if (start2.Year == end.Year && start2.Month == end.Month) { start2 = end; } rate += GetInterestRateOneMonth(start, start2); this._daysInMonth = MiscUtils.DaysInMonth(start2); start = start2; start2 = start2.AddMonths(1); } rate += GetInterestRateOneMonth(start, end); return rate; }