Сегодня начал разбираться с библиотекой Mt. Возникли небольшие дополнения/исправления к библиотеке.

1. Ошибка в MtDates.CompareDatesL при сравнении дней дат.
Ошибка в строке
## Код:
```
ELSIF (date.month = then.month) & (date.day < date.day) THEN
```

Правильно
## Код:
```
ELSIF (date.month = then.month) & (date.day < then.day) THEN
```


2. Не очень красиво выглядят преобразования в MtStrings.TimeToString и MtStrings.DateToString. Например, будет выдаваться 1.1.2007 1:1:1 вместо стандартного 01.01.2007 01:01:01.
Я дополнил функции так:
## Код:
```
PROCEDURE TimeToString* (IN t: Dates.Time; OUT res: ARRAY OF CHAR);
      VAR h, m, s: ARRAY 4 OF CHAR;
   BEGIN
      Strings.IntToString(t.hour, h);
      Strings.IntToString(t.minute, m);
      Strings.IntToString(t.second, s);
      
      IF t.hour < 10 THEN h:= "0"+h END; 
      IF t.minute < 10 THEN m:= "0"+m END;
      IF t.second < 10 THEN s:= "0"+s END;
      
      res := h$ + ":" + m$ + ":" + s$
   END TimeToString;
   
   PROCEDURE DateToString* (IN date: Dates.Date; OUT res: ARRAY OF CHAR);
      VAR y, m, d: ARRAY 16 OF CHAR;
   BEGIN
      Strings.IntToString(date.day, d);
      Strings.IntToString(date.month, m);
      Strings.IntToString(date.year, y);
      
      IF date.day < 10 THEN d:= "0"+d END; 
      IF date.month < 10 THEN m:= "0"+m END;
      
      res := d$ + "." + m$ + "." + y$
   END DateToString;
```


3. Существует процедура StringToTime, но нет StringToDate.
Вот она:
## Код:
```
PROCEDURE StringToDate* (IN s: ARRAY OF CHAR; OUT d: Dates.Date; OUT res: INTEGER);
      VAR buf: ARRAY 5 OF CHAR;
            r: INTEGER;
   BEGIN
      Strings.Extract(s$, 0, 2, buf);
      Strings.StringToInt(buf, d.day, r);
      IF r = 0 THEN
         Strings.Extract(s$, 3, 2, buf);
         Strings.StringToInt(buf, d.month, r);
         IF r = 0 THEN
            Strings.Extract(s$, 6, 4, buf);
            Strings.StringToInt(buf, d.year, r)
         END
      END      
   END StringToDate;
```
