Прежде всего, вы можете найти более подходящим использовать TimeSpan вместо DateTime . Итак, для вашего примера, это:
TimeSpan t = new TimeSpan(0, 1, 8);
decimal d = t.Minutes + (t.Seconds / 60m);
Console.WriteLine(d.ToString());
дает правильный результат. m
после 60
приводит к десятичному расчету.
Вы не можете подключить этот C # непосредственно к onblur текстового поля, так как он работает на стороне сервера. Если вам это нужно для запуска на стороне клиента, вам придется либо использовать обратный вызов ajax для его оценки, либо использовать javascript, чтобы разрезать строку, затем вычислить каждый бит (минуты и секунды) по отдельности, а затем вывести результат во второе текстовое поле или этикетка.