Trying to integrate the answer of this post it into my real code, I face the error
Argument of \timedelta@i has an extra }
when calling the proposed method. Upto now, I've not been able to fix it. Can you help? Thx.
My current code
\documentclass{article}
\usepackage{multirow}
\usepackage{fontawesome}
% Routes Details
\newcommand{\routeInitial}[3]{%{icon}{Description}{startTime}
& #1 & #2\\
\multirow{1}{*}[1.5ex]{#3}%
\gdef\routeFrom{#3}%
}
\newcommand{\routeStep}[3]{%{icon}{Description}{toTime}
\timedelta{\routeFrom}{#3}\relax & #1 & #2\\%
\multirow{1}{*}[1.5ex]{#3}%
\gdef\routeFrom{#3}%
}
\newcommand{\routeFinal}[2]{%{icon}{Description}
& #1 & #2\\%
}
% Duration
\makeatletter
\newcommand{\timedelta}[2]{\romannumeral0\timedelta@i#1:#2:}%
\def\timedelta@i #1:#2:#3:#4:%
{\expandafter\timedelta@ii\the\numexpr#3*60+#4-#1*60-#2.}%
\def\timedelta@ii#1{\expandafter\timedelta@iii\the\numexpr
\if-#11440\fi #1}%
\def\timedelta@iii#1.{\expandafter\timedelta@iv\the\numexpr
(#1 + 30)/60 -1.#1.}%
\def\timedelta@iv #1.#2.{\expandafter\timedelta@v\the\numexpr
100+#2-60*#1\expandafter.\the\numexpr100+#1.}
\def\timedelta@v 1#1.1#2.{ #2:#1}
\makeatother
\begin{document}
\timedelta{16:03}{17:46}\\% This is working !
\begin{tabular}{lcl}
\routeInitial{\faicon{home}}{}{16:03}%
\routeStep{\faicon{car}}{}{17:46}% This is not working ! Argument of \timedelta@i has an extra }
\routeStep{\faicon{beer}}{}{17:58}
\routeStep{\faicon{car}}{}{18:23}
\routeStep{\faicon{cutlery}}{Royal Wok}{20:20}
\routeStep{\faicon{car}}{}{22:44}
\routeStep{\faicon{female}}{}{22:50}
\routeStep{\faicon{car}}{}{01:27}
\routeFinal{\faicon{hotel}}{Seligweiler}
\end{tabular}
\end{document}

\timedeltaautomatically expand its two arguments. I should have done that initially, this would have avoided you quite a few troubles, sorry. – Nov 08 '17 at 22:12