Делаю аналог программы в учебных целях, задачка такая есть дата рождения и дата выдачи паспорта. Надо чтобы в условии были такие моменты как просрочка паспорта. Использую такой вот код
...
QDateEdit date_edit_birth,date_edit_start;
...
QDate dateOfBirth= ui->date_edit_birth->date();
QDate currentDate= QDate::currentDate();
int currentAge = currentDate.year() - dateOfBirth.year();
if (dateOfBirth.month() > currentDate.month() || (dateOfBirth.month() == currentDate.month() && dateOfBirth.day() > currentDate.day()))
currentAge--;
if ((currentAge > 14 && ui->date_edit_start->date() < ui->date_edit_birth->date().addYears(14))
|| (currentAge > 20 && ui->date_edit_start->date() < ui->date_edit_birth->date().addYears(20))
|| (currentAge > 45 && ui->date_edit_start->date() < ui->date_edit_birth->date().addYears(45)))
{
QMessageBox::warning(this, "Некорректное заполнение данных!", "Паспорт просрочен!");
return;
}
...
Но не уверен что правильно считает, иногда появляется окошко с предупреждением.