+QString DataUtils::formatDateTime(const QDateTime &dt) {
+ const qint64 seconds = dt.secsTo(QDateTime::currentDateTime());
+ QString s;
+ int f = 60;
+ if (seconds < f) {
+ s = QCoreApplication::translate("DataUtils", "Just now");
+ } else if (seconds < (f *= 60)) {
+ s = QCoreApplication::translate("DataUtils", "%n minute(s) ago", Q_NULLPTR, seconds / 60);
+ } else if (seconds < (f *= 24)) {
+ int n = seconds / (60 * 60);
+ s = QCoreApplication::translate("DataUtils", "%n hour(s) ago", Q_NULLPTR, n);
+ } else if (seconds < (f *= 7)) {
+ int n = seconds / (60 * 60 * 24);
+ s = QCoreApplication::translate("DataUtils", "%n day(s) ago", Q_NULLPTR, n);
+ } else if (seconds < (f = 60 * 60 * 24 * 30)) {
+ int n = seconds / (60 * 60 * 24 * 7);
+ s = QCoreApplication::translate("DataUtils", "%n week(s) ago", Q_NULLPTR, n);
+ } else if (seconds < (f = 60 * 60 * 24 * 365)) {
+ int n = seconds / (60 * 60 * 24 * 30);
+ s = QCoreApplication::translate("DataUtils", "%n month(s) ago", Q_NULLPTR, n);
+ } else {
+ s = dt.date().toString(Qt::DefaultLocaleShortDate);
+ }
+ return s;
+}