Все правильно, число 0 при преобразовании в строку дает "0" И это не баг. Иначе 10 было бы "100" и тогда да это уже был бы баг.
Если нужно "00" то преобразуйте явно с добавлением "0" через условие, если длина строки равна 1 символу, или через функцию string.format("%02d", alltrade.datetime.min)
t = string.format ( "%02d:%02d" , alltrade.datetime.hour, alltrade.datetime.min)
Опечатка была.
тоже работает криво: 17:59 не отобразилось, 18:00 да сработало, а после первой минуты всё осталось по-прежнему интересно а почему не работает преобразование в минуты?
Код
t = string.format ( "%М" , alltrade.datetime.min)
Пробовал добавить ноль через условие, но код вызывает ошибку
Код
If string.len(alltrade.datetime.min)=2 then
t = tostring(alltrade.datetime.hour)..":"..tostring(alltrade.datetime.min);
Else
t = tostring(alltrade.datetime.hour)..":0"..tostring(alltrade.datetime.min);
end
Пользователь
Сообщений: Регистрация: 06.02.2017
04.05.2020 20:57:38
Код
If string.len(alltrade.datetime.min)=2 then
If string.len(alltrade.datetime.min) == 2 then
Пользователь
Сообщений: Регистрация: 30.01.2015
05.05.2020 07:52:31
Цитата
Дмитрий написал: t = tostring(alltrade.datetime.hour)..":"..tostring(alltrade.datetime.min);
local h = alltrade.datetime.hour; if h<10 then h="0"..h end local m=alltrade.datetime.min; if m<10 then m="0"..m end local t=h..":"..m
Дмитрий, могу лишь предложить свой работающий вариант, от которого можно оттолкнуться.
Код
if string.len(Tl.hour) == 1 then Tl.hour = "0"..Tl.hour; end;
if string.len(Tl.min) == 1 then Tl.min = "0"..Tl.min; end;
if string.len(Tl.sec) == 1 then Tl.sec = "0"..Tl.sec; end;
Игорь Б написал: , могу лишь предложить свой работающий вариант, от которого можно оттолкнуться.
Код
if string.len (Tl.hour) = = 1 then Tl.hour = "0" .. Tl.hour; end ;
if string.len (Tl.min) = = 1 then Tl.min = "0" .. Tl.min; end ;
if string.len (Tl.sec) = = 1 then Tl.sec = "0" .. Tl.sec; end ;
написал: , могу лишь предложить свой работающий вариант, от которого можно оттолкнуться.
Код
if string.len (Tl.hour) = = 1 then Tl.hour = "0" .. Tl.hour; end ;
if string.len (Tl.min) = = 1 then Tl.min = "0" .. Tl.min; end ;
if string.len (Tl.sec) = = 1 then Tl.sec = "0" .. Tl.sec; end ;
Его же Вам предлагал
спасибо, всё получилось
Это просто ужас какой-то. ----------------------------------- У вас изначально таблица Ti содержит время в формате чисел. ---------------------------- Вы их превращаете для сравнения в строки, а потом записываете в виде строк в таблицу ---------------------- В итоге у вас для отображения времени в виде строки 6 раз вызывается преобразование числа в строку а потом вы еще и уничтожаете числа в таблице Ti, заменяя их строками ---------------------- Куча операций и дополнительной памяти чтобы вывести на экран строчку. ---------------------- Мазохизм какой-то