String.Format.Chrono.hpp 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #pragma once
  2. #include <chrono>
  3. #include "String.Format.tlh"
  4. //-----------------------------------------------------------------------------
  5. // 用于格式化 chrono 下的 时 分 秒 毫秒 等
  6. //
  7. // #include "String.Format.Chrono.hpp"
  8. // assert (eSTR::DString::FromFormat ("{$}{$}-{$}"_sv, 11, 22, 33ms) == eSTR::DString ("1122-33ms"));
  9. // assert (eSTR::DString::FromFormat ("{$}{$}-{$}"_sv, 11, 22, 44s) == eSTR::DString ("1122-44s"));
  10. // assert (eSTR::DString::FromFormat ("{$}{$}-{$}"_sv, 11, 22, 55min) == eSTR::DString ("1122-55min"));
  11. // assert (eSTR::DString::FromFormat ("{$}{$}-{$}"_sv, 11, 22, 66h) == eSTR::DString ("1122-66hour"));
  12. //
  13. //-----------------------------------------------------------------------------
  14. namespace ECOM::Utility::String
  15. {
  16. template <> inline std::string ToString (const std::chrono::nanoseconds & d)
  17. {
  18. return std::to_string (d.count ()) + "ns";
  19. }
  20. template <> inline std::string ToString (const std::chrono::microseconds & d)
  21. {
  22. return std::to_string (d.count ()) + "us";
  23. }
  24. template <> inline std::string ToString (const std::chrono::milliseconds & d)
  25. {
  26. return std::to_string (d.count ()) + "ms";
  27. }
  28. template <> inline std::string ToString (const std::chrono::seconds & d)
  29. {
  30. return std::to_string (d.count ()) + "s";
  31. }
  32. template <> inline std::string ToString (const std::chrono::minutes & d)
  33. {
  34. return std::to_string (d.count ()) + "min";
  35. }
  36. template <> inline std::string ToString (const std::chrono::hours & d)
  37. {
  38. return std::to_string (d.count ()) + "hour";
  39. }
  40. }