程序下载
软件界面
源代码
MainWindow.xaml.cs
/* ---------------------------------------------------------- * 文件名称:MainWindow.xaml.cs * * 作者:秦建辉 * * 微信:splashcn * * 博客:http://www.firstsolver.com/wordpress/ * * 开发环境: * Visual Studio V2017 * .NET Framework 4 Client Profile * * 版本历史: * V1.0 2018年02月23日 * 利息计算器 * ------------------------------------------------------------ */ using Com.FirstSolver.Splash; using System; using System.Windows; namespace Splash { public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } private void ButtonCalc_Click(object sender, RoutedEventArgs e) { // 贷款金额 if (string.IsNullOrEmpty(TextBoxMoney.Text)) { MessageBoxPlus.Show(this, "请输入贷款金额!", "警告", MessageBoxButton.OK, MessageBoxImage.Warning); return; } if (!decimal.TryParse(TextBoxMoney.Text, out decimal Money)) { MessageBoxPlus.Show(this, "金额格式不正确!", "警告", MessageBoxButton.OK, MessageBoxImage.Warning); return; } // 年化利率 if (string.IsNullOrEmpty(TextBoxRate.Text)) { MessageBoxPlus.Show(this, "请输入年化利率!", "警告", MessageBoxButton.OK, MessageBoxImage.Warning); return; } if (!decimal.TryParse(TextBoxRate.Text, out decimal Rate)) { MessageBoxPlus.Show(this, "利率格式不正确!", "警告", MessageBoxButton.OK, MessageBoxImage.Warning); return; } Rate /= 100; // 借款日期 if (DatePickerStart.SelectedDate == null) { MessageBoxPlus.Show(this, "尚未选择借款日期!", "警告", MessageBoxButton.OK, MessageBoxImage.Warning); return; } DateTime DateStart = (DateTime)DatePickerStart.SelectedDate; // 还款日期 if (DatePickerEnd.SelectedDate == null) { MessageBoxPlus.Show(this, "尚未选择还款日期!", "警告", MessageBoxButton.OK, MessageBoxImage.Warning); return; } DateTime DateEnd = (DateTime)DatePickerEnd.SelectedDate; // 验证日期 if (DateStart >= DateEnd) { MessageBoxPlus.Show(this, "借款日期必须早于还款日期!", "警告", MessageBoxButton.OK, MessageBoxImage.Warning); return; } // 计算利息 decimal Total = 0m; // 总计利息 while (DateStart < DateEnd) { decimal Interest = Money * Rate; // 一年利息 if (DateStart.AddYears(1) <= DateEnd) { Total += Interest; DateStart = DateStart.AddYears(1); // 是否按年利滚利 if ((bool)CheckBoxRoll.IsChecked) Money += Interest; } else { // 判断是否包含闰年 if (DateTime.IsLeapYear(DateStart.Year) || DateTime.IsLeapYear(DateEnd.Year)) Total += Interest * (DateEnd - DateStart).Days / 366; // 闰年 else Total += Interest * (DateEnd - DateStart).Days / 365; // 平年 break; } } TextBoxInterest.Text = Total.ToString("C"); } private void ButtonCopy_Click(object sender, RoutedEventArgs e) { TextBoxInterest.SelectAll(); TextBoxInterest.Copy(); } } }
MainWindow.xaml
<Window x:Class="Splash.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="利息计算器 By 秦建辉" SizeToContent="WidthAndHeight" FontSize="16" ResizeMode="CanMinimize" WindowStartupLocation="CenterScreen" Icon="balance.ico"> <Grid Margin="4"> <Grid.RowDefinitions> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> </Grid.RowDefinitions> <Grid Grid.Row="0"> <Grid.RowDefinitions> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto"/> <ColumnDefinition/> </Grid.ColumnDefinitions> <Label Grid.Row="0" Grid.Column="0" Margin="4" HorizontalContentAlignment="Center" Content="贷款金额" Background="LightGray"/> <StackPanel Grid.Row="0" Grid.Column="1" Orientation="Horizontal"> <TextBox Margin="4" MinWidth="200" HorizontalContentAlignment="Right" VerticalContentAlignment="Center" Name="TextBoxMoney"/> <Label Margin="0,4" Content="元"/> </StackPanel> <Label Grid.Row="1" Grid.Column="0" Margin="4" HorizontalContentAlignment="Center" Content="年化利率" Background="LightGray"/> <StackPanel Grid.Row="1" Grid.Column="1" Orientation="Horizontal"> <TextBox Margin="4" MinWidth="200" HorizontalContentAlignment="Right" VerticalContentAlignment="Center" Name="TextBoxRate"/> <Label Margin="0,4" Content="%"/> </StackPanel> <Label Grid.Row="2" Grid.Column="0" Margin="4" HorizontalContentAlignment="Center" Content="借款日期" Background="LightGray"/> <DatePicker Grid.Row="2" Grid.Column="1" Margin="4" Name="DatePickerStart"/> <Label Grid.Row="3" Grid.Column="0" Margin="4" HorizontalContentAlignment="Center" Content="还款日期" Background="LightGray"/> <DatePicker Grid.Row="3" Grid.Column="1" Margin="4" Name="DatePickerEnd"/> </Grid> <Separator Grid.Row="1" Margin="4"/> <StackPanel Grid.Row="2" Orientation="Horizontal"> <Button Margin="4" Padding="4" Name="ButtonCalc" Content="计算利息" Foreground="Brown" Click="ButtonCalc_Click"/> <CheckBox Margin="4" Name="CheckBoxRoll" Content="按年利滚利" VerticalContentAlignment="Center"/> </StackPanel> <Grid Grid.Row="3"> <Grid.ColumnDefinitions> <ColumnDefinition/> <ColumnDefinition Width="Auto"/> </Grid.ColumnDefinitions> <TextBox Grid.Column="0" Margin="4" Foreground="Red" IsReadOnly="True" FontSize="32" VerticalContentAlignment="Center" Name="TextBoxInterest"/> <Button Grid.Column="1" Margin="4" Padding="4" MinWidth="64" Name="ButtonCopy" Content="拷贝" Click="ButtonCopy_Click"/> </Grid> </Grid> </Window>