public static double GetTaxedMoney(double d) { if (d > 0) { double dMoney = d - double.Parse(iStartPoint.ToString()); if (dMoney > 0) { PersonalIncomeTaxLevel curTax = GetCurTaxLevel(dMoney); double dTax = dMoney * curTax.TaxRate / 100 - curTax.TakeOut; return(dTax); } else { return(0); } } else { return(0); } }
private static PersonalIncomeTaxLevel GetCurTaxLevel(double dMoney) { double iMoney = dMoney; PersonalIncomeTaxLevel taxResult = null; if (iMoney <= lsTax[0].TaxValue) { taxResult = lsTax[0]; } if (iMoney > lsTax[lsTax.Count - 1].TaxValue) { taxResult = lsTax[lsTax.Count - 1]; } for (int i = 1; i < lsTax.Count - 1; i++) { if (iMoney > lsTax[i - 1].TaxValue && iMoney <= lsTax[i].TaxValue) { taxResult = lsTax[i]; } } return(taxResult); }