public static CalculateDuration ( GlobalFilterCriteria criteria, IEnumerable |
||
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. |
Résultat | 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);
}