コード例 #1
0
        static InvestmentBasis GetInvestmentBasis(InvestmentBasis basis = null)
        {
            basis = basis ?? new InvestmentBasis();

            if (!basis.InitialInvestment.HasValue)
            {
                Console.WriteLine("Please input your initial investment amount:");
                var val = GetUserInputValue();
                basis.InitialInvestment = val;
            }

            if (!basis.MonthlyContributions.HasValue)
            {
                Console.WriteLine("Please input your expected monthly contributions:");
                var val = GetUserInputValue();
                basis.MonthlyContributions = val;
            }

            if (!basis.Years.HasValue)
            {
                Console.WriteLine("Please input the number of years you plan to invest: (1 or more)");
                var val = GetUserInputValue();
                if (val == 0)
                {
                    GetInvestmentBasis(basis);
                }
                basis.Years = (int)val;
            }

            return(basis);
        }
コード例 #2
0
        static InvestmentReturn CalculateReturn(InvestmentBasis basis, double annualpr, int yearsToInvest)
        {
            var result = new InvestmentReturn
            {
                Total = basis.InitialInvestment.Value,
                TotalWithoutGrowth    = basis.InitialInvestment.Value + (basis.MonthlyContributions.Value * (12 * yearsToInvest)),
                MonthlyPercentageRate = annualpr / 12d
            };

            for (int i = 0; i < 12 * yearsToInvest; i++)
            {
                var newMonthlyTotal = result.Total + basis.MonthlyContributions.Value;
                var monthlyGrowth   = newMonthlyTotal * result.MonthlyPercentageRate;
                result.Total   = newMonthlyTotal + monthlyGrowth;
                result.Growth += monthlyGrowth;
            }

            return(result);
        }