【发布时间】:2016-07-29 13:36:30
【问题描述】:
我正在为一家由datePickers 组成的保险公司制作程序。用户可以选择开始保单的日期,然后选择他们提出索赔的日期。自保单开始日期起 1 年内,每次索赔增加 20% 的保费。但是,无论我以何种方式尝试,即使用户在一年前提出索赔,保费仍会上涨 20%。如果我将开始保单日期设置为 2017 年 7 月 26 日,然后将我的索赔日期设置为 2016 年 7 月 5 日,即从开始保单日期起一年多,我的保单开始于 500 英镑,我仍然可以获得 600 英镑已将 20% 添加到该政策中。它应该保持在 500 英镑
我的代码是休闲的
xaml
<DatePicker HorizontalAlignment="Center" Name="dpkStartDateOfPolicy" Grid.Column="1" VerticalAlignment="Top" Grid.Row="1" />
<DatePicker Name="dpkClaim1" Grid.Row="15" Grid.Column="1" HorizontalAlignment="Center" VerticalAlignment="Top"/>
xaml.cs
int policy = 500;
double Chauffeur = 0.10;
double Accountant = 0.10;
double age2125 = 0.20;
double age2675 = 0.10;
double claimOneYear = 0.20;
double tempPolicy;
// Calculation for Claim in the last year
public void claimOneYearMethod ()
{
tempPolicy = (tempPolicy + tempPolicy * claimOneYear);
txtPolicy.Text = tempPolicy.ToString();
}
// Code for claim within the last year.
DateTime Claim1 = Convert.ToDateTime(dpkClaim1.SelectedDate);
DateTime StartPolicy = Convert.ToDateTime(dpkStartDateOfPolicy.SelectedDate);
if ( StartPolicy.Age().Years() <1 && Claim1 )
{
claimOneYearMethod();
}
扩展.cs
public static class Extensions
{
public static TimeSpan Age(this DateTime dt)
{
return (DateTime.Now - dt);
}
public static int Years(this TimeSpan ts)
{
return (int)((double)ts.Days / 365.2425);
}
}
我也试过了
if ( StartPolicy.Age().Years() <1 && Claim1.Age().Years() == 0 )
{
claimOneYearMethod();
}
【问题讨论】:
-
问题到底是什么?
-
自保单开始日期起 1 年内每次索赔增加 20% 的保费。即使索赔是一年多以前,保单仍然上涨了 20%。我在这里做错了什么。
-
您想检查两个日期是否在一年之内?您的问题需要更具体,并且只保留实际问题的相关代码。
-
所有相关代码都是我进行计算的方式。
-
您能否提供一个包含当前输出的示例输入以及您想要的输出?