private void MainForm_Load(object sender, EventArgs e) { textBox1.Text = ""; comboBox1.SelectedIndex = 0; textBox2.Text = ""; textBox3.Text = ""; comboBox2.SelectedIndex = 0; if (File.Exists(limPath)) { string lmt = File.ReadAllText(limPath); limit = int.Parse(lmt); } else { File.AppendAllText(limPath, "0"); limit = 0; } if (File.Exists(regPath)) { string[] TAB = File.ReadAllLines(regPath); for (int i = 0; i < TAB.Length; i++) { string[] tmp = TAB[i].Split('\t'); LoanDetails ld = new LoanDetails(); ld.name = tmp[0]; ld.amount = int.Parse(tmp[1]); ld.interestRate = int.Parse(tmp[2]); ld.issueDate = Convert.ToDateTime(tmp[3]); ld.updateDate = Convert.ToDateTime(tmp[4]); ld.type = tmp[5]; LoanHistory.Add(ld); overallAmount += ld.amount; //limit -= ld.amount; } for (int i = 0; i < LoanHistory.Count; i++) { //limit += LoanHistory[i].amount; overallAmount -= LoanHistory[i].amount; LoanHistory[i].update(LoanHistory[i]); overallAmount += LoanHistory[i].amount; //limit -= LoanHistory[i].amount; } File.Delete(regPath); for (int i = 0; i < LoanHistory.Count; i++) { LoanDetails ld = LoanHistory[i]; File.AppendAllText(regPath, ld.name + '\t' + ld.amount + '\t' + ld.interestRate + '\t' + Convert.ToString(ld.issueDate) + '\t' + Convert.ToString(ld.updateDate) + '\t' + ld.type + '\n'); } } BtnConfirm.Enabled = false; comboBox1.SelectedIndex = 0; string gr; if (limit - overallAmount >= 0) { if ((limit - overallAmount) % 100 < 10) { gr = "0" + (limit - overallAmount) % 100; } else { gr = "" + (limit - overallAmount) % 100; } limitLabel.Text = "Pozostały limit: " + (limit - overallAmount) / 100 + "," + gr + " PLN"; if (overallAmount > limit) { limitLabel.ForeColor = Color.Red; } else { limitLabel.ForeColor = Color.Black; } } else { if ((limit - overallAmount) % 100 > -10) { gr = "0" + ((limit - overallAmount) % 100) * -1; } else { gr = "" + ((limit - overallAmount) % 100) * -1; } limitLabel.Text = "Pozostały limit: " + (limit - overallAmount) / 100 + "," + gr + " PLN"; if (overallAmount > limit) { limitLabel.ForeColor = Color.Red; } else { limitLabel.ForeColor = Color.Black; } } }
public void update(LoanDetails loan) { if (loan.type == "0") // w skali rocznej { while (loan.updateDate.Year < DateTime.Now.Year) { loan.amount = loan.amount * (int)((double)(1 + loan.interestRate / 100000)); DateTime newDate = Convert.ToDateTime("01.01." + (loan.updateDate.Year + 1) + " 00:00:01"); loan.updateDate = newDate; } } if (loan.type == "1") // w skali kwartalnej { while (loan.updateDate.Year != DateTime.Now.Year || (loan.updateDate.Month - 1) / 3 != (DateTime.Now.Month - 1) / 3) { int counter = (loan.updateDate.Month - 1) / 3; if (counter != 3) { loan.amount = loan.amount * (int)((double)(1 + loan.interestRate / 100000.0)); DateTime newDate = Convert.ToDateTime("01." + (counter * 3 + 1) + loan.updateDate.Year + " 00:00:01"); loan.updateDate = newDate; } else { loan.amount = loan.amount * (int)((double)(1 + loan.interestRate / 100000.0)); DateTime newDate = Convert.ToDateTime("01.01." + (loan.updateDate.Year + 1) + " 00:00:01"); loan.updateDate = newDate; } } } else if (loan.type == "2") // w skali miesięcznej { while (loan.updateDate.Year != DateTime.Now.Year || loan.updateDate.Month != DateTime.Now.Month) { if (loan.updateDate.Month != 12) { loan.amount = loan.amount * (int)((double)(1 + loan.interestRate / 100000.0)); DateTime newDate = Convert.ToDateTime("01." + (loan.updateDate.Month + 1) + loan.updateDate.Year + " 00:00:01"); loan.updateDate = newDate; } else { loan.amount = loan.amount * (int)((double)(1 + loan.interestRate / 100000.0)); DateTime newDate = Convert.ToDateTime("01.01." + (loan.updateDate.Year + 1) + " 00:00:01"); loan.updateDate = newDate; } } } else if (loan.type == "3") // w skali dziennej { while (loan.updateDate.Year != DateTime.Now.Year || loan.updateDate.Month != DateTime.Now.Month || loan.updateDate.Day != DateTime.Now.Day) { if (loan.updateDate.Month == 12) { if (loan.updateDate.Day != 31) { loan.amount = (int)(loan.amount * (double)(1 + loan.interestRate / 100000.0)); DateTime newDate = Convert.ToDateTime((loan.updateDate.Day + 1) + "." + loan.updateDate.Month + "." + loan.updateDate.Year + " 00:00:01"); loan.updateDate = newDate; } else { loan.amount = (int)(loan.amount * (double)(1 + loan.interestRate / 100000.0)); DateTime newDate = Convert.ToDateTime("01.01." + (loan.updateDate.Year + 1) + " 00:00:01"); loan.updateDate = newDate; } } else if (loan.updateDate.Month == 4 || loan.updateDate.Month == 6 || loan.updateDate.Month == 9 || loan.updateDate.Month == 11) { if (loan.updateDate.Day != 30) { loan.amount = (int)(loan.amount * (double)(1 + loan.interestRate / 100000.0)); DateTime newDate = Convert.ToDateTime((loan.updateDate.Day + 1) + "." + loan.updateDate.Month + "." + loan.updateDate.Year + " 00:00:01"); loan.updateDate = newDate; } else { loan.amount = (int)(loan.amount * (double)(1 + loan.interestRate / 100000.0)); DateTime newDate = Convert.ToDateTime("01." + (loan.updateDate.Month + 1) + "." + loan.updateDate.Year + " 00:00:01"); loan.updateDate = newDate; } } else if (loan.updateDate.Month == 2) { if (DateTime.IsLeapYear(loan.updateDate.Year)) { if (loan.updateDate.Day != 29) { loan.amount = (int)(loan.amount * (double)(1 + loan.interestRate / 100000.0)); DateTime newDate = Convert.ToDateTime((loan.updateDate.Day + 1) + "." + loan.updateDate.Month + "." + loan.updateDate.Year + " 00:00:01"); loan.updateDate = newDate; } else { loan.amount = (int)(loan.amount * (double)(1 + loan.interestRate / 100000.0)); DateTime newDate = Convert.ToDateTime("01." + (loan.updateDate.Month + 1) + "." + loan.updateDate.Year + " 00:00:01"); loan.updateDate = newDate; } } else { if (loan.updateDate.Day != 28) { loan.amount = (int)(loan.amount * (double)(1 + loan.interestRate / 100000.0)); DateTime newDate = Convert.ToDateTime((loan.updateDate.Day + 1) + "." + loan.updateDate.Month + "." + loan.updateDate.Year + " 00:00:01"); loan.updateDate = newDate; } else { loan.amount = (int)(loan.amount * (double)(1 + loan.interestRate / 100000.0)); DateTime newDate = Convert.ToDateTime("01." + (loan.updateDate.Month + 1) + "." + loan.updateDate.Year + " 00:00:01"); loan.updateDate = newDate; } } } else { if (loan.updateDate.Day != 31) { loan.amount = (int)(loan.amount * (double)(1 + loan.interestRate / 100000.0)); DateTime newDate = Convert.ToDateTime((loan.updateDate.Day + 1) + "." + loan.updateDate.Month + "." + loan.updateDate.Year + " 00:00:01"); loan.updateDate = newDate; } else { loan.amount = (int)(loan.amount * (double)(1 + loan.interestRate / 100000.0)); DateTime newDate = Convert.ToDateTime("01." + (loan.updateDate.Month + 1) + "." + loan.updateDate.Year + " 00:00:01"); loan.updateDate = newDate; } } } } }
private void BtnConfirm_Click(object sender, EventArgs e) { if (comboBox1.SelectedIndex == 1) { double amt = double.Parse(textBox3.Text) * 100; int amount = (int)amt; double intr = double.Parse(textBox2.Text) * 1000; int interest = (int)intr; string line = textBox1.Text + '\t' + amount + '\t' + interest + '\t' + Convert.ToString(DateTime.Now) + '\t' + Convert.ToString(DateTime.Now) + '\t' + comboBox2.SelectedIndex + '\n'; File.AppendAllText(regPath, line); overallAmount += amount; LoanDetails ld = new LoanDetails(); ld.name = textBox1.Text; ld.amount = amount; ld.interestRate = interest; ld.issueDate = DateTime.Now; ld.updateDate = DateTime.Now; LoanHistory.Add(ld); string gr; if (limit - overallAmount >= 0) { if ((limit - overallAmount) % 100 < 10) { gr = "0" + (limit - overallAmount) % 100; } else { gr = "" + (limit - overallAmount) % 100; } limitLabel.Text = "Pozostały limit: " + (limit - overallAmount) / 100 + "," + gr + " PLN"; limitLabel.ForeColor = Color.Black; } else { if ((limit - overallAmount) % 100 > -10) { gr = "0" + ((limit - overallAmount) % 100) * -1; } else { gr = "" + ((limit - overallAmount) % 100) * -1; } limitLabel.Text = "Pozostały limit: " + (limit - overallAmount) / 100 + "," + gr + " PLN"; limitLabel.ForeColor = Color.Red; } textBox1.Text = ""; comboBox1.SelectedIndex = 0; textBox2.Text = ""; textBox3.Text = ""; comboBox2.SelectedIndex = 0; } if (comboBox1.SelectedIndex == 2) { double amt = double.Parse(textBox3.Text) * 100; int amount = (int)amt; for (int i = 0; i < LoanHistory.Count && amount > 0; i++) { if (LoanHistory[i].name == textBox1.Text) { if (amount >= LoanHistory[i].amount) { amount -= LoanHistory[i].amount; overallAmount -= LoanHistory[i].amount; LoanHistory[i].amount = 0; } else { LoanHistory[i].amount -= amount; overallAmount -= amount; amount = 0; } } } for (int i = 0; i < LoanHistory.Count; i++) { if (LoanHistory[i].amount == 0) { LoanHistory.Remove(LoanHistory[i]); i--; } } File.Delete(regPath); for (int i = 0; i < LoanHistory.Count; i++) { LoanDetails ld = LoanHistory[i]; File.AppendAllText(regPath, ld.name + '\t' + ld.amount + '\t' + ld.interestRate + '\t' + Convert.ToString(ld.issueDate) + '\t' + Convert.ToString(ld.updateDate) + '\t' + ld.type + '\n'); } string gr; if (limit - overallAmount >= 0) { if ((limit - overallAmount) % 100 < 10) { gr = "0" + (limit - overallAmount) % 100; } else { gr = "" + (limit - overallAmount) % 100; } limitLabel.Text = "Pozostały limit: " + (limit - overallAmount) / 100 + "," + gr + " PLN"; limitLabel.ForeColor = Color.Black; } else { if ((limit - overallAmount) % 100 > -10) { gr = "0" + ((limit - overallAmount) % 100) * -1; } else { gr = "" + ((limit - overallAmount) % 100) * -1; } limitLabel.Text = "Pozostały limit: " + (limit - overallAmount) / 100 + "," + gr + " PLN"; limitLabel.ForeColor = Color.Red; } textBox1.Text = ""; comboBox1.SelectedIndex = 0; textBox2.Text = ""; textBox3.Text = ""; comboBox2.SelectedIndex = 0; } }