timeconversions.c 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. /**@class FullTimeData
  2. * @brief struct that keeps Time relevant information for future formatting
  3. **/
  4. class FullTimeData
  5. {
  6. int m_Days
  7. int m_Hours
  8. int m_Minutes
  9. int m_Seconds
  10. string FormatedAsTimestamp()
  11. {
  12. m_Hours += m_Days * 24;
  13. string h;
  14. string m;
  15. string s;
  16. if (m_Hours < 10)
  17. h = "0";
  18. if (m_Minutes < 10)
  19. m = "0";
  20. if (m_Seconds < 10)
  21. s = "0";
  22. return string.Format("%1%2:%3%4:%5%6", h, m_Hours, m, m_Minutes, s, m_Seconds);
  23. }
  24. string FormatedWithZero()
  25. {
  26. return string.Format("%1#STR_time_unit_abbrev_day_0 %2#STR_time_unit_abbrev_hour_0 %3#STR_time_unit_abbrev_minute_0 %4#STR_time_unit_abbrev_second_0", m_Days, m_Hours, m_Minutes, m_Seconds);
  27. }
  28. string FormatedNonZero()
  29. {
  30. string message;
  31. if (m_Days > 0)
  32. message += string.Format("%1#STR_time_unit_abbrev_day_0 ", m_Days);
  33. if (m_Hours > 0)
  34. message += string.Format("%1#STR_time_unit_abbrev_hour_0 ", m_Hours);
  35. if (m_Minutes > 0)
  36. message += string.Format("%1#STR_time_unit_abbrev_minute_0 ", m_Minutes);
  37. message += string.Format("%1#STR_time_unit_abbrev_second_0", m_Seconds);
  38. return message;
  39. }
  40. }
  41. class TimeConversions
  42. {
  43. /**
  44. \brief transform time in seconds into FullTimeData struct
  45. @param timeInSeconds time in seconds
  46. @param fullTime time output as FullTimeData struct
  47. */
  48. static void ConvertSecondsToFullTime(int timeInSeconds, out FullTimeData fullTime)
  49. {
  50. fullTime.m_Days = timeInSeconds / (24 * 3600);
  51. timeInSeconds = timeInSeconds % (24 * 3600);
  52. fullTime.m_Hours = timeInSeconds / 3600;
  53. timeInSeconds = timeInSeconds % 3600;
  54. fullTime.m_Minutes = timeInSeconds / 60;
  55. timeInSeconds = timeInSeconds % 60;
  56. fullTime.m_Seconds = timeInSeconds;
  57. }
  58. }