Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?

Официальный форум Simple-Scada.

Автор Тема: Суммирование времени в отчётах  (Прочитано 2787 раз)

Rolich

  • Пользователь
  • **
  • Сообщений: 78
    • Просмотр профиля
Добрый день, уважаемые форумчане
В проекте имеется глобальная переменная, типа DateTime, в которую несколько раз в сутки записывается длительность определённых событий
Вопрос: как подсчитать общую длительность события по этой переменной в отчёте ?

Simple_Scada

  • Администратор
  • *****
  • Сообщений: 1365
    • Просмотр профиля
Re: Суммирование времени в отчётах
« Ответ #1 : 12 Июля 2023, 13:00:01 »
Здравствуйте.

Если Вы создаете отчет по примеру "Время наработки / простоя", то общую длительность можно вычислить в итоге отчета, как это описано в данной теме. Если такой вариант не подходит, то пришлите на support@simple-scada.com для проверки текущую версию проекта, укажите отчет и переменную, по которой нужно вычислить общую длительность.

Rolich

  • Пользователь
  • **
  • Сообщений: 78
    • Просмотр профиля
Re: Суммирование времени в отчётах
« Ответ #2 : 12 Июля 2023, 14:45:05 »
Тут не получилось, отписался в личку

Rolich

  • Пользователь
  • **
  • Сообщений: 78
    • Просмотр профиля
Re: Суммирование времени в отчётах
« Ответ #3 : 18 Июля 2023, 12:40:54 »
Доброго всем времени суток
Вопрос подсчёта длительности событий решил путём накопления секунд событий нарастающим итогом, а потом вычисления их разности в отчёте
Теперь есть вопрос по форматированию выводимой информации
Сейчас используется выражение
{new DateTime().AddSeconds(Данные.Peremennaya_Prostoya).ToString("HH:mm:ss")}
Это работает, выводит значение в заданном формате времени
Но вот если отчёт строится за длительный период, значение длительности может переваливать за 24 часа и тогда значение формируется неправильно, при переходе через 24 часа обнуляется
Как сделать так, чтобы отображалось фактическое количество часов простоя, более 24 часа ?

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3197
    • Просмотр профиля
    • Simple-Scada
Re: Суммирование времени в отчётах
« Ответ #4 : 19 Июля 2023, 16:01:37 »
Здравствуйте.

Вывод в формате часы:минуты:секунды:
Код: (c#)
{(int)TimeSpan.FromSeconds(Данные.Peremennaya_Prostoya).TotalHours + ":" +
 TimeSpan.FromSeconds(Данные.Peremennaya_Prostoya).ToString("mm\:ss")}
, подходит для количества часов больше 24. Т.е. результатом может быть "26:15:00".

Вывод в формате "дни.часы:минуты:секунды":
Код: (c#)
{TimeSpan.FromSeconds(Данные.Peremennaya_Prostoya).ToString("dd\.hh\:mm\:ss")}
пример: 01.12:15:00

Rolich

  • Пользователь
  • **
  • Сообщений: 78
    • Просмотр профиля
Re: Суммирование времени в отчётах
« Ответ #5 : 20 Июля 2023, 07:12:35 »
Большое спасибо !