Версия для печати

SCL: Численное представление даты вермени в символьное

Дата: 2021-01-14

Добавлено: komatic

Тема: SCL



date time



Перевод численного представления даты и времени в символьное (SCL).





FUNCTION "DATE_TIME_character" : Void
 
   VAR_IN_OUT
      _date : Array[1..10] of Char;
      _time : Array[1..8] of Char;
   END_VAR
 
   VAR_TEMP
      DandT : DT;
      D_T AT DandT : Struct
         year           : BYTE;
         month          : BYTE;
         day            : BYTE;
         hour           : BYTE;
         minute         : BYTE;
         seconds        : BYTE;
         msec           : BYTE;
         msec_weekday  : BYTE;
      END_STRUCT;
      tmp_ret_val : Int;
   END_VAR
 
 
BEGIN
    tmp_ret_val := READ_CLK(CDT  := DandT);
   
    _date[1] := '2';                                            // Date YYYY-MM-TT
    _date[2] := '0';
    _date[3] := INT_TO_CHAR(BYTE_TO_INT(SHR(IN := D_T.year AND 16#F0, N := 4)) + 16#30);
    _date[4] := INT_TO_CHAR(BYTE_TO_INT(D_T.year AND 16#0F) + 16#30);
    _date[5] := '-';
    _date[6] := INT_TO_CHAR(BYTE_TO_INT(SHR(IN := D_T.month AND 16#F0, N := 4)) + 16#30);
    _date[7] := INT_TO_CHAR(BYTE_TO_INT(D_T.month AND 16#0F) + 16#30);
    _date[8] := '-';
    _date[9] := INT_TO_CHAR(BYTE_TO_INT(SHR(IN := D_T.day AND 16#F0, N := 4)) + 16#30);
    _date[10] := INT_TO_CHAR(BYTE_TO_INT(D_T.day AND 16#0F) + 16#30);
   
                                                                // Time HH:MI:SS
    _time[1] := INT_TO_CHAR(BYTE_TO_INT(SHR(IN := D_T.hour AND 16#F0, N := 4)) + 16#30);   
    _time[2] := INT_TO_CHAR(BYTE_TO_INT(D_T.hour AND 16#0F) + 16#30);
    _time[3] := ':';
    _time[4] := INT_TO_CHAR(BYTE_TO_INT(SHR(IN := D_T.minute AND 16#F0, N := 4)) + 16#30);
    _time[5] := INT_TO_CHAR(BYTE_TO_INT(D_T.minute AND 16#0F) + 16#30);
    _time[6] := ':';
    _time[7] := INT_TO_CHAR(BYTE_TO_INT(SHR(IN := D_T.seconds AND 16#F0, N := 4)) + 16#30);
    _time[8] := INT_TO_CHAR(BYTE_TO_INT(D_T.seconds AND 16#0F) + 16#30);
   
END_FUNCTION







Просмотров: 1859

Комментарии к материалу

Добавлен: denzhig    Дата: 2021-01-23

Насчёт _date[1..4] я бы поспорил: там надо смотреть цифру года и если она больше скольки-то (щас просто не помню точно) - то это будет 19.. год, а если меньше, то да, 20.. год.

Добавить комментарий

Ваше имя:

Текст комментария (4000 max):

Введите сумму с картинки: