diff options
author | Michi Henning <michi@zeroc.com> | 2005-12-19 06:37:13 +0000 |
---|---|---|
committer | Michi Henning <michi@zeroc.com> | 2005-12-19 06:37:13 +0000 |
commit | 4a8626848d5b91814d321098f7d1e61c19f063f9 (patch) | |
tree | a2e1c326103bb680b63291eba3219def4645be7e /cpp/src/IceUtil/Time.cpp | |
parent | Fixed bug 666. (diff) | |
download | ice-4a8626848d5b91814d321098f7d1e61c19f063f9.tar.bz2 ice-4a8626848d5b91814d321098f7d1e61c19f063f9.tar.xz ice-4a8626848d5b91814d321098f7d1e61c19f063f9.zip |
Bug 544.
Diffstat (limited to 'cpp/src/IceUtil/Time.cpp')
-rw-r--r-- | cpp/src/IceUtil/Time.cpp | 39 |
1 files changed, 37 insertions, 2 deletions
diff --git a/cpp/src/IceUtil/Time.cpp b/cpp/src/IceUtil/Time.cpp index aa0f5a3fa85..69100c94463 100644 --- a/cpp/src/IceUtil/Time.cpp +++ b/cpp/src/IceUtil/Time.cpp @@ -9,6 +9,7 @@ #include <IceUtil/DisableWarnings.h> #include <IceUtil/Time.h> +#include <iomanip> #ifdef _WIN32 # include <sys/timeb.h> @@ -104,7 +105,7 @@ IceUtil::Time::toMicroSecondsDouble() const } std::string -IceUtil::Time::toString() const +IceUtil::Time::toDateTime() const { time_t time = static_cast<long>(_usec / 1000000); @@ -121,13 +122,47 @@ IceUtil::Time::toString() const strftime(buf, sizeof(buf), "%x %H:%M:%S", t); std::ostringstream os; - os << buf << ":"; + os << buf << "."; os.fill('0'); os.width(3); os << static_cast<long>(_usec % 1000000 / 1000); return os.str(); } +// +// TODO: toString() is deprecated. Leave for two more releases after 3.0.0 and then remove it. +// +std::string +IceUtil::Time::toString() const +{ + return toDateTime(); +} + +std::string +IceUtil::Time::toDuration() const +{ + Int64 usecs = _usec % 1000000; + Int64 secs = _usec / 1000000 % 60; + Int64 mins = _usec / 1000000 / 60 % 60; + Int64 hours = _usec / 1000000 / 60 / 60 % 24; + Int64 days = _usec / 1000000 / 60 / 60 / 24; + + using namespace std; + + ostringstream os; + if(days != 0) + { + os << days << "d "; + } + os << setfill('0') << setw(2) << hours << ":" << setw(2) << mins << ":" << setw(2) << secs; + if(usecs != 0) + { + os << "." << setw(3) << (usecs / 1000); + } + + return os.str(); +} + Time::Time(Int64 usec) : _usec(usec) { |