Подсчет дней между двумя датами

Я попытался создать программу с Qt, которая будет подсчитывать, сколько дней между двумя датами. Проблема в том, что я новичок в Qt и у меня это не работает.

Похоже QDateTime это легко, но я не понимаю структуру программы.

Может ли кто-нибудь сделать пример для меня. Просто простая программа, которая показывает, сколько дней, например, до Рождества.

2 ответа

Ваша проблема очень проста.

Создайте консольное приложение в QtCreator и отредактируйте main.cpp сюда:

#include <QApplication>
#include <QDate>
#include <QDebug>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    // get current date
    QDate dNow(QDate::currentDate());
    // create other date
    //  by giving date 12.21.2012 (joke about end of the world)
    QDate dEndOfTheWorld(2012, 12, 21);
    qDebug() << "Today is" << dNow.toString("dd.MM.yyyy")
             << "Days to end of the world: "
             << dNow.daysTo(dEndOfTheWorld);

    return a.exec();
}

И вы получите вывод, как:

Сегодня "18.12.2012" дней до конца света: 3

PS Но я советую вам выучить C++ (добавьте в любимую эту тему - Руководство и список книг Definitive C++), а затем - Qt (я рекомендую программирование на C++ с использованием Qt 4 от Jasmin Blanchette & Mark Summerfield и других книг Summerfields).). Удачи!

Вам придется использовать

qint64 QDateTime::toMSecsSinceEpoch () const

Возвращает дату и время как количество миллисекунд, прошедших с 1970-01-01 00:00:00.000

Так как нет возможности напрямую найти timeSpan. Преобразуйте ваши 2 объекта dateTime в миллисекунды, вычтите и конвертируйте в дни, часы, минуты, секунды, используя математические манипуляции.

Другие вопросы по тегам