ti faccio un esempio completo da adattare.
Per prima cosa voglio l'orario nel formato solo ora da 0 a 23 oppure ore:minuti da 0:0 a 23:59

detto questo:

pagina aspx
codice:
<%@ Page language="c#" Codebehind="validazione ora.aspx.cs" AutoEventWireup="false" Inherits="prova_web_c_charp.validazione_ora" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
	<HEAD>
		<title>validazione ora</title>
		<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
		<meta name="CODE_LANGUAGE" Content="C#">
		<meta name="vs_defaultClientScript" content="JavaScript">
		<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
	</HEAD>
	<body MS_POSITIONING="FlowLayout">
		<form id="Form1" method="post" runat="server">
			<table>
				<tr>
					<td>
						<label for="ora1" title="hh:mm">Ora1 (h:m):</label>
					</td>
					<td>
						<asp:TextBox runat="server" id="ora1" title="hh:mm" Width="80" />
					</td>
					<td>
						<asp:RequiredFieldValidator Runat="server" ID="Requiredfieldvalidator_ora1" ControlToValidate="ora1" ErrorMessage="L'ora di riunione è obbligata" ToolTip="L'ora di riunione è obbligata" style="CURSOR:help">*</asp:RequiredFieldValidator>
						<asp:RegularExpressionValidator ID="RegularExpressionValidator_ora1" Runat="server" ControlToValidate="ora1" ErrorMessage="Introdurre l'ora di riunione nel formato hh:mm" ToolTip="Introdurre l'ora di riunione nel formato hh:mm" ValidationExpression="^(([01]?\d)|(2[0-3]))(:([0-5]?\d))?$" style="CURSOR:help">*</asp:RegularExpressionValidator>
					</td>
				</tr>
				<tr>
					<td>
						<label for="ora2" title="hh:mm">Ora2 (h:m):</label>
					</td>
					<td>
						<asp:TextBox runat="server" id="ora2" title="hh:mm" Width="80" />
					</td>
					<td>
						<asp:RequiredFieldValidator Runat="server" ID="Requiredfieldvalidator_ora2" ControlToValidate="ora2" ErrorMessage="L'ora di riunione è obbligata" ToolTip="L'ora di riunione è obbligata" style="CURSOR:help">*</asp:RequiredFieldValidator>
						<asp:RegularExpressionValidator ID="Regularexpressionvalidator_ora2" Runat="server" ControlToValidate="ora2" ErrorMessage="Introdurre l'ora di riunione nel formato hh:mm" ToolTip="Introdurre l'ora di riunione nel formato hh:mm" ValidationExpression="^(([01]?\d)|(2[0-3]))(:([0-5]?\d))?$" style="CURSOR:help">*</asp:RegularExpressionValidator>
					</td>
				</tr>
				<tr>
					<td>
						<label title="hh:mm">Differenza (h:m):</label>
					</td>
					<td>
						<asp:TextBox runat="server" id="differenza" title="hh:mm" Width="80" ReadOnly="True" />
					</td>
					<td>
						<asp:Button ID="button1" Runat="server" Text="Calcola differenza" />
					</td>
				</tr>
			</table>
		</form>
	</body>
</HTML>
codice sottostante:
codice:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace prova_web_c_charp
{
	/// <summary>
	/// Descrizione di riepilogo per validazione_ora.
	/// </summary>
	public class validazione_ora : System.Web.UI.Page
	{
		protected System.Web.UI.WebControls.TextBox ora1;
		protected System.Web.UI.WebControls.RequiredFieldValidator Requiredfieldvalidator_ora1;
		protected System.Web.UI.WebControls.RegularExpressionValidator RegularExpressionValidator_ora1;
		protected System.Web.UI.WebControls.RequiredFieldValidator Requiredfieldvalidator_ora2;
		protected System.Web.UI.WebControls.RegularExpressionValidator Regularexpressionvalidator_ora2;
		protected System.Web.UI.WebControls.TextBox differenza;
		protected System.Web.UI.WebControls.Button button1;
		protected System.Web.UI.WebControls.TextBox ora2;
	
		private void Page_Load(object sender, System.EventArgs e)
		{
			// Inserire qui il codice utente necessario per inizializzare la pagina.
		}

		#region Codice generato da Progettazione Web Form
		override protected void OnInit(EventArgs e)
		{
			//
			// CODEGEN: questa chiamata è richiesta da Progettazione Web Form ASP.NET.
			//
			InitializeComponent();
			base.OnInit(e);
		}
		
		/// <summary>
		/// Metodo necessario per il supporto della finestra di progettazione. Non modificare
		/// il contenuto del metodo con l'editor di codice.
		/// </summary>
		private void InitializeComponent()
		{    
			this.button1.Click += new System.EventHandler(this.button1_Click);
			this.Load += new System.EventHandler(this.Page_Load);

		}
		#endregion

		private void button1_Click(object sender, System.EventArgs e)
		{
			//recupero ora1
			string ora1 = this.ora1.Text;
			string[] ore1 = ora1.Split(':');
			int minuti1 = (ore1.Length == 2)? int.Parse(ore1[0])*60 + int.Parse(ore1[1]):int.Parse(ore1[0])*60;

			//recupero ora2
			string ora2 = this.ora2.Text;
			string[] ore2 = ora2.Split(':');
			int minuti2 = (ore2.Length == 2)? int.Parse(ore2[0])*60 + int.Parse(ore2[1]):int.Parse(ore2[0])*60;
			
			int differenza_minuti = (minuti1 > minuti2)?minuti1 - minuti2:minuti2 - minuti1;
			
			
			
			this.differenza.Text = (differenza_minuti / 60).ToString() + ":" + (differenza_minuti % 60).ToString();

		}
	}
}