QT 5.15.2 QDate::DaysTo возвращает 0, несмотря на то, что все типы переменных верныC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 QT 5.15.2 QDate::DaysTo возвращает 0, несмотря на то, что все типы переменных верны

Сообщение Anonymous »

Я хочу найти файлы в папке и проверить, сколько им лет.
У меня есть этот фрагмент кода, который не работает так, как я ожидаю, согласно документации и примерам, которые я подписались:
const QDate today = QDate::currentDate();
Q_FOREACH(auto fileInfo, QDir("folderName").entryInfoList(QDir::Files)) {

// These variables are added to the watch table to see their values
auto test1 = fileInfo.created().date().daysTo(today);
auto test2 = fileInfo.baseName();
auto test3 = fileInfo.suffix();
}

Я добавляю переменные test1, test2, test3 в таблицу наблюдения, чтобы посмотреть, какие у них значения.
Мне кажется, чтоdaysTo(today ) возвращает 0, потому что сегодня — недопустимый формат. Это в юлианский день. Но он имеет тип QDate, а QDate::daysTo(QDate d) хочет переменную типа QDate в качестве параметра. Мне это кажется правильным?
И правильные файлы тоже находятся, проверив по базовому имени и суффиксу. И им не 0 дней... Скорее месяц или около того.
Почему DayTo возвращает 0, хотя вроде бы все в порядке?
Я использую QT 5.15.2.
Обновление: я добавил еще несколько тестов и изменил функцию create() наbirthTime(). См. комментарии к результатам, которые я нахожу при просмотре переменных в таблице наблюдения:
const QDate today = QDate::currentDate();
Q_FOREACH(auto fileInfo, QDir("folderName").entryInfoList(QDir::Files)) {

auto test1 = fileInfo.birthTime().date().daysTo(today); // Gives "0"
auto test11 = fileInfo.birthTime(); // Gives "msecs=280348"
bool test111 = test31.isValid(); // Gives "true"
auto test12 = fileInfo.birthTime().date(); // Gives "Julian day=2460417"
auto test13 = fileInfo.fileTime(QFileDevice::FileBirthTime); // Gives "msecs=280311"
auto test2 = fileInfo.baseName(); // Gives "filename"
auto test3 = fileInfo.suffix(); // Gives ".jpg"


Подробнее здесь: https://stackoverflow.com/questions/783 ... ng-correct
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»