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

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

Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - pro_100_russ

Страницы: [1]
1
Спасибо большое! ;D

Цитировать
Вот код который вычитает месяц правильно:
Код: (delphi)
mDate := IncMonth(Now, -1);  // вычитаем месяц из текущей даты
mDate := RecodeDateTime(mDate, YearOf(mDate), MonthOf(mDate), 1, 0, 0, 0, 0);  // меняем день на 1 и обнуляем время
// теперь можно использовать mDate

2
Добрый день.
Есть счетчик готовой продукции, значения которой вывел в скаду. Написал простой код для вычета готовой продукции за прошедший месяц. Проблема в том, что когда наступил 01.01.2023 год, у меня перестал работать код.
Как я выяснил, когда вычитается 1 месяц от 01.01.2023, то получается 01.12.2023!
Код заработал 01.02.2023 и отнимает 1 месяц правильно.

Код: (delphi)
var
  mDate,nDate: TDateTime;
begin
  mDate := RecodeDateTime(Now, YearOf(Now), MonthOf(IncMonth(Now, -1)), 1, 0, 0, 0, 0);
  ArchiveValueByTime(Schetchik_gotovoy_produktsii, proizvedeno_za_proshedshiy_mesyats_Begin, mDate);
  nDate:= RecodeDateTime(Now, YearOf(Now), MonthOf(Now), 1 , 0, 0, 0, 0);
  nDate := incDay(nDate, 1);
 
  ArchiveValueByTime(Schetchik_gotovoy_produktsii, proizvedeno_za_proshedshiy_mesyats_End, nDate);

  if (proizvedeno_za_proshedshiy_mesyats_Begin.AsInt = 0 ) OR
     (proizvedeno_za_proshedshiy_mesyats_End.AsInt = 0) then
    proizvedeno_za_proshedshiy_mesyats_Result.Value := 0
  else
    proizvedeno_za_proshedshiy_mesyats_Result.Value := (proizvedeno_za_proshedshiy_mesyats_End.AsInt - proizvedeno_za_proshedshiy_mesyats_Begin.AsInt);
end.

3
Добрый день.
Проблема еще актуальна!

Страницы: [1]