public static List <Paycheck> BuildPaychecks(Employee e, int year)
        {
            decimal         annual         = e.AnnualGrossPay ?? Paycheck.DefaultAnnualGrossPay;
            decimal         paycheckAmount = 1.0M * annual / Paycheck.PaychecksPerYear;
            List <Paycheck> result         = new List <Paycheck>(Paycheck.PaychecksPerYear);
            var             dateFrom       = new DateTime(year, 1, 1);
            int             daysPerCheck   = (int)365 / Paycheck.PaychecksPerYear;
            DateTime        dateTo;

            for (int i = 0; i < Paycheck.PaychecksPerYear; i++)
            {
                dateTo = dateFrom.AddDays(daysPerCheck - 1);
                var paycheck = new Paycheck()
                {
                    GrossAmount = paycheckAmount,
                    StartDate   = dateFrom,
                    EndDate     = dateTo,
                    Index       = i + 1,
                    Year        = year,
                    Employee    = e
                };
                result.Add(paycheck);
                paycheck.AdjustResidualGrossAmount();
                dateFrom = dateFrom.AddDays(daysPerCheck);
            }

            return(result);
        }
 public PaycheckBenefitCost(Benefit benefit, Person benefitReceiver, Paycheck paycheck)
 {
     BenefitReceiver = benefitReceiver;
     Paycheck        = paycheck;
     Benefit         = benefit;
     CalculateAmount();
 }