我正在编写一个程序,允许输入司机详细信息,如年龄,职业和过去的索赔。这3个因素将根据其价值对最终溢价产生直接影响。
我对年龄和职业的计算工作正常,这是我遇到问题的说法。以下代码是对司机索赔进行的计算。
我不知道为什么,但'totalClaims'变量正在更新,而'差异'变量也是如此 - 但当'差异'低于1时,不会执行policy.Premium上的计算。介于1和1之间5
请注意
策略是策略对象
'差异'是自索赔发生以来积累的年数
Premium是政策中的财产。驱动程序和声明是Policy
中的列表属性public void ClaimScanner()
{
foreach (Driver driver in policy.Drivers)
{
totalClaims = totalClaims + driver.Claims.Count();
int difference;
foreach (Claim claim in driver.Claims)
{
difference = policy.PolicyStart.Year - claim.ClaimDate.Year;
if (policy.PolicyStart.Month < claim.ClaimDate.Month || policy.PolicyStart.Month == claim.ClaimDate.Month && policy.PolicyStart.Day < claim.ClaimDate.Day)
{
difference = difference - 1;
} // gets the "age of a claim"
if (difference < 1)
{
policy.Premium = policy.Premium * 1.2;
}
else if (difference >= 1 && difference < 5)
{
policy.Premium = policy.Premium * 1.1;
}
// increases policy price depending on age of claim
}
}