89 lines
2.5 KiB
C++
89 lines
2.5 KiB
C++
#pragma execution_character_set("utf-8")
|
|
|
|
#include "widget.h"
|
|
#include "ui_widget.h"
|
|
#include "qmessagebox.h"
|
|
#include "qdebug.h"
|
|
|
|
Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget)
|
|
{
|
|
ui->setupUi(this);
|
|
this->initForm();
|
|
}
|
|
|
|
Widget::~Widget()
|
|
{
|
|
delete ui;
|
|
}
|
|
|
|
void Widget::initForm()
|
|
{
|
|
QDateTime now = QDateTime::currentDateTime();
|
|
ui->dateStart->setDate(now.date());
|
|
ui->dateEnd->setDate(now.date().addYears(1));
|
|
}
|
|
|
|
void Widget::on_btnCalc_clicked()
|
|
{
|
|
//当前多少钱
|
|
int moneyCurrent = ui->txtMoneyCurrent->text().toInt();
|
|
//利息
|
|
float rate = ui->txtRate->text().toFloat();
|
|
//定期期限
|
|
int year = ui->cboxYear->currentText().left(1).toInt();
|
|
//总年份 必须是定期期限的倍数
|
|
int years = ui->txtYears->text().toInt();
|
|
//最终多少钱
|
|
int moneyAll = 0;
|
|
|
|
if (years % year != 0) {
|
|
ui->txtYears->setFocus();
|
|
QMessageBox::critical(this, "错误", "总年份必须是期限的整数倍数!");
|
|
return;
|
|
}
|
|
|
|
if (ui->cboxType->currentIndex() == 0) {
|
|
//傻瓜场景 直接计算
|
|
moneyAll = moneyCurrent + (moneyCurrent * rate * years);
|
|
} else {
|
|
//真实场景 复利计算
|
|
int count = years / year;
|
|
for (int i = 0; i < count; ++i) {
|
|
moneyCurrent = moneyCurrent + (moneyCurrent * rate * year);
|
|
}
|
|
moneyAll = moneyCurrent;
|
|
}
|
|
|
|
//计算下来3年期定期存款30年总金额翻2番到最初本金3倍 100W本金3年期自动续期30年=321W
|
|
QString value = QString::number(moneyAll);
|
|
ui->txtMoneyAll->setText(value);
|
|
|
|
//拷贝到其他地方
|
|
if (ui->rbtn1->isChecked()) {
|
|
ui->txtValue1->setText(value);
|
|
} else {
|
|
ui->txtValue2->setText(value);
|
|
}
|
|
|
|
//计算两种存款方式的差额 比如1年期存3年和3年期存3年
|
|
QString value1 = ui->txtValue1->text().trimmed();
|
|
QString value2 = ui->txtValue2->text().trimmed();
|
|
if (!value1.isEmpty() && !value2.isEmpty()) {
|
|
int value = qAbs(value1.toInt() - value2.toInt());
|
|
ui->txtValue->setText(QString::number(value));
|
|
}
|
|
}
|
|
|
|
void Widget::on_btnCalc2_clicked()
|
|
{
|
|
//计算天数
|
|
QDateTime dateStart = ui->dateStart->dateTime();
|
|
QDateTime dateEnd = ui->dateEnd->dateTime();
|
|
int day = dateStart.daysTo(dateEnd);
|
|
int money = ui->txtMoney2->text().toInt();
|
|
float rate = ui->txtRate2->text().toFloat();
|
|
int result = money * rate * day;
|
|
ui->txtResult2->setText(QString::number(result));
|
|
qDebug() << day;
|
|
}
|