From 127de22c5fb396e1670d2a911faf7a9adc9241e2 Mon Sep 17 00:00:00 2001 From: Jon Atack Date: Sun, 13 Feb 2022 19:44:05 +0100 Subject: gui: add FormatPeerAge() utility helper Co-authored-by: randymcmillan --- src/qt/guiutil.cpp | 12 ++++++++++++ src/qt/guiutil.h | 3 +++ 2 files changed, 15 insertions(+) diff --git a/src/qt/guiutil.cpp b/src/qt/guiutil.cpp index 3108c93d7c..130f424e43 100644 --- a/src/qt/guiutil.cpp +++ b/src/qt/guiutil.cpp @@ -79,6 +79,8 @@ void ForceActivation(); #endif +using namespace std::chrono_literals; + namespace GUIUtil { QString dateTimeStr(const QDateTime &date) @@ -727,6 +729,16 @@ QString formatDurationStr(std::chrono::seconds dur) return str_list.join(" "); } +QString FormatPeerAge(std::chrono::seconds time_connected) +{ + const auto time_now{GetTime()}; + const auto age{time_now - time_connected}; + if (age >= 24h) return QObject::tr("%1 d").arg(age / 24h); + if (age >= 1h) return QObject::tr("%1 h").arg(age / 1h); + if (age >= 1min) return QObject::tr("%1 m").arg(age / 1min); + return QObject::tr("%1 s").arg(age / 1s); +} + QString formatServicesStr(quint64 mask) { QStringList strList; diff --git a/src/qt/guiutil.h b/src/qt/guiutil.h index 0224b18b4e..76e5207d81 100644 --- a/src/qt/guiutil.h +++ b/src/qt/guiutil.h @@ -223,6 +223,9 @@ namespace GUIUtil /** Convert seconds into a QString with days, hours, mins, secs */ QString formatDurationStr(std::chrono::seconds dur); + /** Convert peer connection time to a QString denominated in the most relevant unit. */ + QString FormatPeerAge(std::chrono::seconds time_connected); + /** Format CNodeStats.nServices bitmask into a user-readable string */ QString formatServicesStr(quint64 mask); -- cgit v1.2.3