Цитата Сообщение от petera Посмотреть сообщение
Например так
Код:
FUNCTION myTIME_TO_STR : STRING
VAR_INPUT
	ttt: TIME;
END_VAR
VAR
	a: DWORD;
	ss: DWORD;
	mm: DWORD;
	dd: DWORD;
END_VAR
a:=TIME_TO_DWORD(ttt)/1000;
dd:=a/86400;
myTIME_TO_STR:=CONCAT(DWORD_TO_STRING(dd), ':');
mm:=(a MOD 86400)/60;
myTIME_TO_STR:=CONCAT(myTIME_TO_STR, DWORD_TO_STRING(mm)); myTIME_TO_STR:=CONCAT(myTIME_TO_STR, ':');
ss:=a MOD 60;
myTIME_TO_STR:=CONCAT(myTIME_TO_STR, DWORD_TO_STRING(ss));
Я вместо часов дни использовал,
должно быть так
Код:
FUNCTION myTIME_TO_STR : STRING
VAR_INPUT
	ttt: TIME;
END_VAR
VAR
	a: DWORD;
	ss: DWORD;
	mm: DWORD;
	hh: DWORD;
END_VAR
a:=TIME_TO_DWORD(ttt)/1000;
hh:=a/3600;
myTIME_TO_STR:=CONCAT(DWORD_TO_STRING(hh), ':');
mm:=(a MOD 3600)/60;
myTIME_TO_STR:=CONCAT(myTIME_TO_STR, DWORD_TO_STRING(mm)); myTIME_TO_STR:=CONCAT(myTIME_TO_STR, ':');
ss:=a MOD 60;
myTIME_TO_STR:=CONCAT(myTIME_TO_STR, DWORD_TO_STRING(ss));
В этом варианте будут отсутствовать ведущие нули в результате преобразования, т.е. строка будет 1: 2: 3
Если привлечь DWORD_TO_STRF из OSCAT, то результат можно сделать с ведущими нулями
Код:
FUNCTION myTIME_TO_STRF : STRING
VAR_INPUT
	ttt: TIME;
END_VAR
VAR
	a: DWORD;
	ss: STRING;
	mm: STRING;
	hh: STRING;
END_VAR
a:=TIME_TO_DWORD(ttt)/1000;
hh:=DWORD_TO_STRF((a/3600),2);
myTIME_TO_STRF:=CONCAT(hh, ':');
mm:=DWORD_TO_STRF(((a MOD 3600)/60),2);
myTIME_TO_STRF:=CONCAT(myTIME_TO_STRF, mm); myTIME_TO_STRF:=CONCAT(myTIME_TO_STRF, ':');
ss:=DWORD_TO_STRF((a MOD 60),2);
myTIME_TO_STRF:=CONCAT(myTIME_TO_STRF, ss);
Обе функции
Захват-1.png