]> git.sur5r.net Git - minitube/blobdiff - src/datautils.cpp
Upload 3.9.3-2 to unstable
[minitube] / src / datautils.cpp
index d35fc132bd1b07720ac4d32b7e178337304869a6..1de28d5c12827d34bbb779d13b1d44bb259294f4 100644 (file)
@@ -57,7 +57,7 @@ uint DataUtils::parseIsoPeriod(const QString &isoPeriod) {
 }
 
 QString DataUtils::formatDateTime(const QDateTime &dt) {
-    const qint64 seconds = dt.secsTo(QDateTime::currentDateTime());
+    const qint64 seconds = dt.secsTo(QDateTime::currentDateTimeUtc());
     QString s;
     int f = 60;
     if (seconds < f) {
@@ -72,12 +72,13 @@ QString DataUtils::formatDateTime(const QDateTime &dt) {
         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 weeks(s) ago", Q_NULLPTR, n);
+        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);
+        int n = seconds / (60 * 60 * 24 * 30 * 12);
+        s = QCoreApplication::translate("DataUtils", "%n year(s) ago", Q_NULLPTR, n);
     }
     return s;
 }
@@ -93,3 +94,27 @@ QString DataUtils::formatDuration(uint secs) {
     if (hours == 0) return res.sprintf("%d:%02d", minutes, seconds);
     return res.sprintf("%d:%02d:%02d", hours, minutes, seconds);
 }
+
+QString DataUtils::formatCount(int c) {
+    QString s;
+    int f = 1;
+    if (c < 1) {
+        return s;
+    } else if (c < (f *= 1000)) {
+        s = QString::number(c);
+    } else if (c < (f *= 1000)) {
+        int n = c / 1000;
+        s = QString::number(n) +
+            QCoreApplication::translate("DataUtils", "K", "K as in Kilo, i.e. thousands");
+    } else if (c < (f *= 1000)) {
+        int n = c / (1000 * 1000);
+        s = QString::number(n) +
+            QCoreApplication::translate("DataUtils", "M", "M stands for Millions");
+    } else {
+        int n = c / (1000 * 1000 * 1000);
+        s = QString::number(n) +
+            QCoreApplication::translate("DataUtils", "B", "B stands for Billions");
+    }
+
+    return QCoreApplication::translate("DataUtils", "%1 views").arg(s);
+}