Simple-Scada forum

Simple-Scada 2 => Ваши вопросы => Тема начата: Teodor от 31 Марта 2017, 11:39:01

Название: Время и дата
Отправлено: Teodor от 31 Марта 2017, 11:39:01
Есть пара вопросов по времени/дате

1. StrTodate как должна выглядеть строка, которую эта функция может корректно обработать.

2. SetDateFormat отвечает только за вывод, или от нее собсно зависит п.1

3. При SetDateFormat('dd.mm.yyyy');
S= DateToStr (date) = '27.03.2017', но StrToDate (S) = 31.03.2017 (не получилось).
Как правильно отработать строку в дату?
Название: Re: время-дата
Отправлено: Teodor от 31 Марта 2017, 12:06:44
Вопрос снимается... Натупил, не ту переменную принимал в роли даты. Все ОК.
Название: Re: время-дата
Отправлено: Teodor от 31 Марта 2017, 12:25:08
Зато есть новый... После StrToDate  DateTime.AsInt64 возвращает число дней с 01.01.1900 ?
Название: Re: время-дата
Отправлено: TeNQ от 31 Марта 2017, 14:50:32
У меня подобное было, когда я переменной типа DateTime присваивал явно время, а дату нет. Если дату не присвоить самому, то скадой присваивается по-умолчанию дата с каким то временным сдвигом относительно текущей даты. У меня был 1899 год месяц назад. А у вас сейчас 1900.
Название: Re: время-дата
Отправлено: Simple-Scada от 31 Марта 2017, 14:55:06
Цитировать
DateTime.AsInt64 возвращает число дней с 01.01.1900?
Число дней с 30 декабря 1899 года.
Название: Re: время-дата
Отправлено: Teodor от 31 Марта 2017, 15:01:24
У меня подобное было, когда я переменной типа DateTime присваивал явно время, а дату нет. Если дату не присвоить самому, то скадой присваивается по-умолчанию дата с каким то временным сдвигом относительно текущей даты. У меня был 1899 год месяц назад. А у вас сейчас 1900.
;D
нене... мне был нужен абсолют даты (датавремя.AsLongWord). В линуховом формате я бы получил дикую цыфрь с точностью до мс, а тут всего "28 ххх" вот и засомневался. А что я получу если там еще и время будет указано?
Название: Re: время-дата
Отправлено: Simple-Scada от 31 Марта 2017, 19:35:51
Цитировать
А что я получу если там еще и время будет указано?
Тип TDateTime это тип Double, вещественное число, всё что в его левой части (целая часть) представляет собой количество дней с 30 декабря 1899 года, а правая (дробная часть) представляет время. Соответственно при взятии "датавремя.AsLongWord" будет произведено округление вещественного числа до ближайшего целого и Вы получите также число дней, но округленное с учетом времени.

Название: Re: время-дата
Отправлено: Teodor от 10 Мая 2017, 12:30:30
Обидный момент с календарем...

Дату там выбрать можно, а вот время не нашел как ввести, кроме как с клавиатуры, которой на объекте нету :(.
Название: Re: время-дата
Отправлено: Simple-Scada от 11 Мая 2017, 08:47:50
Здравствуйте.

В будущих обновлениях добавим виртуальную клавиатуру к вводу календаря.
Название: Re: время-дата
Отправлено: Teodor от 11 Мая 2017, 09:05:14
Здравствуйте.

В будущих обновлениях добавим виртуальную клавиатуру к вводу календаря.
Вообще, если кликнуть на календарике, то дата выбирается (правда, если переменная инициализировалась в 0, то получается обидно, т.к. заманаешьсе щелкать)
Название: Re: время-дата
Отправлено: Simple-Scada от 12 Мая 2017, 09:42:44
Цитировать
правда, если переменная инициализировалась в 0, то получается обидно, т.к. заманаешьсе щелкать
В последнем обновлении дата/время инициализируется началом сегодняшнего дня, это должно помочь.
Название: Re: время-дата
Отправлено: Teodor от 16 Мая 2017, 09:50:44
А нет возможности календарю добавить кнопку "Сегодня/Сейчас"? (При возможности)
Название: Re: время-дата
Отправлено: Simple-Scada от 16 Мая 2017, 14:15:05
Для этого можно добавить кнопку рядом с календарем, связать доп. переменную этой кнопки с переменной календаря и на OnClick написать универсальный скрипт, который, при необходимости, подойдет и для других таких кнопок календарей:

Код
begin
  if Sender is TM_Object then
    with Sender as TM_Object do
      if VariableEx <> nil then
        VariableEx.Value := Now;
end.
Название: Re: Время и дата
Отправлено: Teodor от 17 Мая 2017, 12:56:47
Таки, да...  Костенею...  Идея зачетная... А заодно и кнопки "сегодня", "завтра", "через час", "завтрак", "обед", "ужин"...

Спасибо за идею :)