According to your definition, the input
gets transformed into
Since the auxiliary macro expects to see
TeX will look for a colon until getting to a
\par token or the end of the file. The reason is that TeX does no macro expansion when collecting arguments to macros.
Thus you need to expand
\tOne before TeX expands
\timeHHMMToTotalMinutes@h and starts looking for its arguments.
Anyhow, there is another fix to do. If you define
then your call will become first
The collected arguments will be
#2. The second
0 will remain in the input stream and you'll get
which provides the correct result, but by chance. Something like
will surprise you. Better delimiting also the second argument and terminating
This prints 18023. You code, with just
\expandafter added would print 203.