statistics_format_values.cpp 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. /*
  2. This file is part of Telegram Desktop,
  3. the official desktop application for the Telegram messaging service.
  4. For license and copyright information please follow this link:
  5. https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
  6. */
  7. #include "statistics/statistics_format_values.h"
  8. #include "base/unixtime.h"
  9. #include "lang/lang_keys.h"
  10. #include <QtCore/QLocale>
  11. namespace Statistic {
  12. QString LangDayMonthYear(crl::time seconds) {
  13. const auto date = base::unixtime::parse(seconds).date();
  14. return tr::lng_stats_day_month_year(
  15. tr::now,
  16. lt_days_count,
  17. QString::number(date.day()),
  18. lt_month,
  19. Lang::MonthSmall(date.month())(tr::now),
  20. lt_year,
  21. QString::number(date.year()));
  22. }
  23. QString LangDayMonth(crl::time seconds) {
  24. const auto date = base::unixtime::parse(seconds).date();
  25. return tr::lng_stats_day_month(
  26. tr::now,
  27. lt_days_count,
  28. QString::number(date.day()),
  29. lt_month,
  30. Lang::MonthSmall(date.month())(tr::now));
  31. }
  32. QString LangDetailedDayMonth(crl::time seconds) {
  33. const auto dateTime = base::unixtime::parse(seconds);
  34. if (dateTime.toUTC().time().hour() || dateTime.toUTC().time().minute()) {
  35. constexpr auto kOneDay = 3600 * 24;
  36. if (seconds < kOneDay) {
  37. return QLocale().toString(dateTime, QLocale::ShortFormat);
  38. }
  39. return tr::lng_stats_weekday_day_month_time(
  40. tr::now,
  41. lt_day,
  42. Lang::Weekday(dateTime.date().dayOfWeek())(tr::now),
  43. lt_days_count,
  44. QString::number(dateTime.date().day()),
  45. lt_month,
  46. Lang::MonthSmall(dateTime.date().month())(tr::now),
  47. lt_time,
  48. QLocale().toString(dateTime.time(), QLocale::ShortFormat));
  49. } else {
  50. return tr::lng_stats_weekday_day_month_year(
  51. tr::now,
  52. lt_day,
  53. Lang::Weekday(dateTime.date().dayOfWeek())(tr::now),
  54. lt_days_count,
  55. QString::number(dateTime.date().day()),
  56. lt_month,
  57. Lang::MonthSmall(dateTime.date().month())(tr::now),
  58. lt_year,
  59. QString::number(dateTime.date().year()));
  60. }
  61. }
  62. } // namespace Statistic