An approach without packages.
\documentclass{article}
\makeatletter
% Will be expandable, expands in two steps
\newcommand{\timedelta}[2]{\romannumeral0\timedelta@i#1:#2:}%
% get arguments and evaluate time difference in minutes
\def\timedelta@i #1:#2:#3:#4:%
{\expandafter\timedelta@ii\the\numexpr#3*60+#4-#1*60-#2.}%
% correct modulo 24*60 if difference turns out negative
\def\timedelta@ii#1{\expandafter\timedelta@iii\the\numexpr
\if-#11440\fi #1}%
% do Euclidean division by 60. Curse \numexpr rounding in passing.
\def\timedelta@iii#1.{\expandafter\timedelta@iv\the\numexpr
(#1 + 30)/60 -1.#1.}%
% Get the remainder too, prepare for zero padding
\def\timedelta@iv #1.#2.{\expandafter\timedelta@v\the\numexpr
100+#2-60*#1\expandafter.\the\numexpr100+#1.}
% Output final result
\def\timedelta@v 1#1.1#2.{ #2:#1}
\makeatother
\begin{document}
\timedelta{22:40}{22:50}
\timedelta{23:00}{00:10}
\timedelta{08:24}{19:32}
\end{document}

In practice, one may want to use the \timedelta with arguments being themselves macros. But the above code does not expand the arguments. This led to follow-up question Probably just another gdef-expansion problem.
I provided an answer there which completes the above code with generated variants which expand their arguments.
Let me here simply extend the above code so that \timedelta automatically expands its two arguments. This expansion will be a so-called "full (first token) expansion", and in particular \timedelta can then be used as argument to itself, so that one can compute delta's of delta's etc... à la Newton iterated differences. Just in case you are idle for a while.
\documentclass{article}
\makeatletter
% Will be expandable, expands in two steps
% Expands its arguments!
\newcommand{\timedelta}[2]%
{\romannumeral0\expandafter\timedelta@h\expandafter
{\romannumeral-`0#2}{#1}}%
\def\timedelta@h #1#2{\expandafter\timedelta@i\romannumeral-`0#2:#1:}
% get arguments and evaluate time difference in minutes
\def\timedelta@i #1:#2:#3:#4:%
{\expandafter\timedelta@ii\the\numexpr#3*60+#4-#1*60-#2.}%
% correct modulo 24*60 if difference turns out negative
\def\timedelta@ii#1{\expandafter\timedelta@iii\the\numexpr
\if-#11440\fi #1}%
% do Euclidean division by 60. Curse \numexpr rounding in passing.
\def\timedelta@iii#1.{\expandafter\timedelta@iv\the\numexpr
(#1 + 30)/60 -1.#1.}%
% Get the remainder too, prepare for zero padding
\def\timedelta@iv #1.#2.{\expandafter\timedelta@v\the\numexpr
100+#2-60*#1\expandafter.\the\numexpr100+#1.}
% Output final result
\def\timedelta@v 1#1.1#2.{ #2:#1}
\makeatother
\begin{document}
\timedelta{22:40}{22:50}
\timedelta{23:00}{00:10}
\timedelta{08:24}{19:32}
\newcommand\timeStart{00:02}
\newcommand\timeEnd{00:01}
\timedelta{\timeStart}{\timeEnd}
\timedelta{\timeEnd}{\timeStart}
\timedelta{\timedelta{10:00}{14:23}}{\timedelta{10:00}{14:22}}
\end{document}
