Как использовать только месяц с даты, выбранной в QCalendarWidget в выражении IF - PullRequest
0 голосов
/ 27 сентября 2019

Чтобы познакомиться с C ++ с помощью Qt, я делаю несколько (очень!) Простых проектов.Проект, который меня немного озадачил, - это то, что я называю «Детектором метеорологического сезона», который позволяет мне поиграть с QDate и QCalendarWidget.После запуска приложения пользователю предлагается выбрать дату из QCalendarWidget.QLabel выведет сезон, например, «Это весна!».Выражение IF используется для определения сезона.Как вы увидите из моего кода, я могу точно определить сезон только в течение определенного года (2020).Это потому, что мне еще предстоит выяснить, как «игнорировать» год и день выбранной даты в моем заявлении IF и использовать только месяц.Прочитав документацию, я чувствую, что мой ответ может быть как-то связан с int QDate::month() const, но у меня ничего не получилось.То, что я хотел бы, является некоторым руководством относительно того, иду ли я в правильном направлении и, если так, как использовать month(), пожалуйста.В южном полушарии метеорологическая весна, лето, осень и зима - сентябрь-ноябрь, декабрь-февраль, март-май и июнь-август соответственно.

void Seasons::on_calendarWidget_clicked(const QDate &date)
{
    QDate may(2020, 5, 31);
    QDate august(2020, 8, 31);
    QDate november(2020, 11, 30);
    QDate february(2021, 2, 28);

    if(date > november && date < february)
    {
        ui->season->setText("It's summer!");
    }
    else if(date > february && date < may)
    {
        ui->season->setText("It's autumn!");
    }
    else if(date > may && date < august)
    {
        ui->season->setText("It's winter!");
    }
    else
    {
        ui->season->setText("It's spring!");
    }
}

Неудачная попытка использования int QDate::month() const:

    if(date > date::month(11) && date < date::month(3))
    {
        ui->season->setText("It's summer!");
    }

Ошибка:

C:\Users\Kaylyn\Desktop\QtCreator Projects\Seasons\seasons.cpp:24: error: 'date' is not a class or namespace
     if(date > date::month(11) && date < date::month(3))
                                         ^
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...