added age to result
This commit is contained in:
parent
bc7be14c65
commit
da2aa89059
7 changed files with 69 additions and 5 deletions
48
source/Age.cpp
Normal file
48
source/Age.cpp
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
#include "Age.h"
|
||||||
|
|
||||||
|
#include <QDebug>
|
||||||
|
|
||||||
|
Age::Age(unsigned int years, unsigned int months)
|
||||||
|
: m_years(years)
|
||||||
|
, m_months(months)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
Age::Age(const QDate &birth, const QDate &reference)
|
||||||
|
{
|
||||||
|
if (reference < birth)
|
||||||
|
{
|
||||||
|
qDebug() << "test (" << reference << ") before birth (" << birth << ")";
|
||||||
|
m_years = 0;
|
||||||
|
m_months = 0;
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
int years = reference.year() - birth.year();
|
||||||
|
int months = reference.month() - birth.month();
|
||||||
|
|
||||||
|
if (months == 0 && reference.day() < birth.day())
|
||||||
|
{
|
||||||
|
months--;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (months < 0)
|
||||||
|
{
|
||||||
|
years--;
|
||||||
|
months = (months + 12) % 12;
|
||||||
|
}
|
||||||
|
|
||||||
|
m_years = years;
|
||||||
|
m_months = months;
|
||||||
|
}
|
||||||
|
|
||||||
|
unsigned int Age::years() const
|
||||||
|
{
|
||||||
|
return m_years;
|
||||||
|
}
|
||||||
|
|
||||||
|
unsigned int Age::months() const
|
||||||
|
{
|
||||||
|
return m_months;
|
||||||
|
}
|
13
source/Age.h
13
source/Age.h
|
@ -1,5 +1,18 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include <QDate>
|
||||||
|
|
||||||
class Age
|
class Age
|
||||||
{
|
{
|
||||||
|
private:
|
||||||
|
unsigned int m_years = 0;
|
||||||
|
unsigned int m_months = 0;
|
||||||
|
|
||||||
|
public:
|
||||||
|
Age() = default;
|
||||||
|
Age(unsigned int years, unsigned int months);
|
||||||
|
Age(const QDate &birth, const QDate &reference);
|
||||||
|
|
||||||
|
unsigned int years() const;
|
||||||
|
unsigned int months() const;
|
||||||
};
|
};
|
||||||
|
|
|
@ -19,6 +19,7 @@ add_executable(${PROJECT_NAME}
|
||||||
LogoTest.cpp
|
LogoTest.cpp
|
||||||
DataModel.cpp
|
DataModel.cpp
|
||||||
mainwindow.cpp
|
mainwindow.cpp
|
||||||
|
Age.cpp
|
||||||
${LOGO_TEST_UI}
|
${LOGO_TEST_UI}
|
||||||
${LOGO_TEST_QRC}
|
${LOGO_TEST_QRC}
|
||||||
)
|
)
|
||||||
|
|
|
@ -40,4 +40,5 @@ void DataModel::pluralModelChanged()
|
||||||
|
|
||||||
void DataModel::metaDataChanged()
|
void DataModel::metaDataChanged()
|
||||||
{
|
{
|
||||||
|
m_results.setAge(m_metaData.getAge());
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,6 +33,6 @@ public:
|
||||||
|
|
||||||
Age getAge() const
|
Age getAge() const
|
||||||
{
|
{
|
||||||
return {};
|
return { m_dateOfBirth, m_dateOfTest };
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
@ -80,8 +80,9 @@ QVariant ResultModel::headerData(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ResultModel::setAge(const QDate &age)
|
void ResultModel::setAge(const Age &age)
|
||||||
{
|
{
|
||||||
|
qDebug() << "Age:" << age.years() << "years" << age.months() << "months";
|
||||||
m_age = age;
|
m_age = age;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include "../Age.h"
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <QAbstractTableModel>
|
#include <QAbstractTableModel>
|
||||||
#include <QDate>
|
|
||||||
|
|
||||||
class TestResult
|
class TestResult
|
||||||
{
|
{
|
||||||
|
@ -38,7 +38,7 @@ class ResultModel : public QAbstractTableModel
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QDate m_age;
|
Age m_age;
|
||||||
std::vector<TestResult> m_results;
|
std::vector<TestResult> m_results;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
@ -53,6 +53,6 @@ public:
|
||||||
QVariant headerData(int section, Qt::Orientation orientation,
|
QVariant headerData(int section, Qt::Orientation orientation,
|
||||||
int role = Qt::DisplayRole) const override;
|
int role = Qt::DisplayRole) const override;
|
||||||
|
|
||||||
void setAge(const QDate &age);
|
void setAge(const Age &age);
|
||||||
void setPluralResult(size_t points);
|
void setPluralResult(size_t points);
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue