Has probado con DateTime.Substract o con el DateTime.op_Subtraction?
Creo que te podría servir para lo que tu necesitas!! De modo que te da los días, horas, minutos y segundos de diferencia.
Código:
System.DateTime date1 = new System.DateTime(1996, 6, 3, 22, 15, 0);
System.DateTime date2 = new System.DateTime(1996, 12, 6, 13, 2, 0);
System.DateTime date3 = new System.DateTime(1996, 10, 12, 8, 42, 0);
// diff1 gets 185 days, 14 hours, and 47 minutes.
System.TimeSpan diff1 = date2.Subtract(date1);
// diff2 gets -185 days, 14 hours, and 47 minutes.
System.TimeSpan diff1 = date2.Subtract(date1);
Prueba si te vale, y nos comentas!!
Un saludo