BudgetAnalyser.Engine.Statement.StatementModel.CalculateDuration C# (CSharp) Метод

CalculateDuration() публичный статический Метод

Calculates the duration in months from the beginning of the period to the end.
public static CalculateDuration ( GlobalFilterCriteria criteria, IEnumerable transactions ) : int
criteria GlobalFilterCriteria /// The criteria that is currently applied to the Statement. Pass in null to use first and last /// statement dates. ///
transactions IEnumerable The list of transactions to use to determine duration.
Результат int
        public static int CalculateDuration(GlobalFilterCriteria criteria, IEnumerable<Transaction> transactions)
        {
            List<Transaction> list = transactions.ToList();
            DateTime minDate = DateTime.MaxValue, maxDate = DateTime.MinValue;

            if (criteria != null && !criteria.Cleared)
            {
                if (criteria.BeginDate != null)
                {
                    minDate = criteria.BeginDate.Value;
                    Debug.Assert(criteria.EndDate != null);
                    maxDate = criteria.EndDate.Value;
                }
            }
            else
            {
                minDate = list.Min(t => t.Date);
                maxDate = list.Max(t => t.Date);
            }

            return minDate.DurationInMonths(maxDate);
        }