Issue with sorting a vector of C++17 Filesystem::last_write_time

222 Views Asked by At

I'm having an issue trying to sort a vector of files by their last write time. Sorting seems to work as intended, however sometimes even though the time string shows a higher date, the time_t is lower.

Example Output:

Wed Aug 19 01:51:07 2020 || 1597819867
Wed Aug 19 05:17:20 2020 || 1597832240
Tue Aug 18 18:54:26 2020 || 1597794866
Tue Aug 18 18:43:20 2020 || 1597794200
Tue Aug 18 18:42:38 2020 || 1597794158
Wed Aug 19 22:52:44 2020 || 1597895564 <-Wrong
Thu Aug 13 18:25:32 2020 || 1597361132 <-Wrong
Wed Aug 12 22:36:51 2020 || 1597289811 <-Wrong
Mon Aug 17 21:49:45 2020 || 1597718985

My Code:

for (int i = 0; i < 200; i++) {
    auto diff = GetFileWriteTime(pth) - GetFileWriteTime(dates[i]);
    if (diff > 0.0) {
        itPos = dates.begin();
        if (i > 0) { itPos = dates.begin() + i - 1; }
            dates.insert(itPos, pth);
            dates.pop_back();
            break;
        }
    }
}
0

There are 0 best solutions below