Мне нужно выполнить расчеты с символом. Мне нужно преобразовать время в формате чч: мм в прошедшие минуты.
;; (get-minutes symbol)->number
;; convert the time in hh:mm to minutes
;; (get-minutes 6:19)-> 6* 60 + 19
(define (get-minutes time)
(let* ((a-time (string->list (symbol->string time)))
(hour (first a-time))
(minutes (third a-time)))
(+ (* hour 60) minutes)))
Это неправильный код, после всего этого преобразования я получаю символ и не могу выполнить правильный расчет.
Ребята, у вас есть предложения? Я не могу изменить тип ввода.
Контекст: входные данные представляют собой расписание полета, поэтому я не могу изменить структуру данных.
;; -------------------------------------------------- --------------------
Edit:
Разобрался с некрасивым решением. Пожалуйста, предложите что-нибудь получше.
(define (get-minutes time)
(let* ((a-time (symbol->string time))
(hour (string->number (substring a-time 0 1)))
(minutes (string->number (substring a-time 2 4))))
(+ (* hour 60) minutes)))