private void StockProblem_Load(object sender, EventArgs e) { List <StockPriceTime> yesterday_time_prices = new List <StockPriceTime>(); int[] stock_prices_yesterday = new int[] { 10, 7, 5, 8, 11, 9 }; DateTime today = DateTime.Today; DateTime yesterday = today.AddDays(-1); DateTime openingTime = new DateTime(yesterday.Year, yesterday.Month, yesterday.Day, 9, 30, 0); for (int i = 0; i < stock_prices_yesterday.Length; i++) { txtBxStockPrices.Text += openingTime.AddMinutes(i).ToString(); txtBxStockPrices.Text += " "; txtBxStockPrices.Text += stock_prices_yesterday[i].ToString("C"); txtBxStockPrices.Text += "\r\n"; StockPriceTime currentPriceTime = new StockPriceTime(); currentPriceTime.price = stock_prices_yesterday[i]; currentPriceTime.time = openingTime.AddMinutes(i); yesterday_time_prices.Add(currentPriceTime); } get_max_profit(yesterday_time_prices); }
private void get_max_profit(List <StockPriceTime> priceTimes) { int max = 0; StockPriceTime buyData = new StockPriceTime(); StockPriceTime sellData = new StockPriceTime(); for (int i = 0; i < priceTimes.Count; i++) { for (int j = i + 1; j < priceTimes.Count; j++) { if (priceTimes[j].price - priceTimes[i].price > max) { buyData.time = priceTimes[i].time; buyData.price = priceTimes[i].price; sellData.time = priceTimes[j].time; sellData.price = priceTimes[j].price; max = priceTimes[j].price - priceTimes[i].price; } } } txtBxProfit.Text = max.ToString("C"); txtBxPurchasePrice.Text = buyData.price.ToString("C"); txtBxPurchaseTime.Text = buyData.time.ToString(); txtBxSellPrice.Text = sellData.price.ToString("C"); txtBxSellTime.Text = sellData.time.ToString(); }