File: qDateTimeExperiment.cpp

package info (click to toggle)
js8call 2.5.1%2Bds-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 24,720 kB
  • sloc: cpp: 562,655; sh: 898; python: 132; ansic: 102; makefile: 4
file content (34 lines) | stat: -rw-r--r-- 1,232 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <QLoggingCategory>

#include "qDateTimeExperiment.h"

Q_DECLARE_LOGGING_CATEGORY(qdatetimeexperiment_js8)

QDateTimeRoundingExperiment::QDateTimeRoundingExperiment() {
    if (qdatetimeexperiment_js8().isDebugEnabled()) {
        experimentQDateTimer.setTimerType(Qt::PreciseTimer);
        experimentQDateTimer.setSingleShot(true);
        connect(&experimentQDateTimer, &QTimer::timeout, this,
                &QDateTimeRoundingExperiment::printRounding);

        qint64 nowMS = QDateTime::currentMSecsSinceEpoch();
        qint64 into_second = nowMS % 1000;
        if (into_second < 950)
            experimentQDateTimer.start(950 - into_second);
        else
            printRounding();
    }
}

void QDateTimeRoundingExperiment::printRounding() {
    QDateTime now{QDateTime::currentDateTimeUtc()};
    qCDebug(qdatetimeexperiment_js8)
        << "How does QDateTime round?"
        << "Without drift, now is " << now << "which translates to"
        << now.toMSecsSinceEpoch() << "milliseconds after epoch"
        << "which is truncated to" << now.toSecsSinceEpoch()
        << "milliseconds after epoch";
}

Q_LOGGING_CATEGORY(qdatetimeexperiment_js8, "qdatetimeexperiment.js8",
                   QtWarningMsg)