投稿者 るきお  (社会人) 投稿日時 2009/8/6 22:16:27
こんにちは。
理屈はるしぇさんの式のとおりです。
VBで表現すると次のようになります。
    
Dim hour1 As Integer = cmb_h1.Text
Dim hour2 As Integer = cmb_h2.Text
Dim minute1 As Integer = cmb_m1.Text
Dim minute2 As Integer = cmb_m2.Text

'(19 - 9) + (0 - 30) ÷ 60 = 9.5 
TextBox1.Text = (hour2 - hour1) + (minute2 - minute1) / 60


VB(やC#)では日付・時刻が扱いやすいような工夫もいろいろあって、
時間の引き算はDateTime.Subtractメソッドで行うこともできます。
    
Dim time1 As Date = TimeSerial(cmb_h1.Text, cmb_m1.Text, 0)
Dim time2 As Date = TimeSerial(cmb_h2.Text, cmb_m2.Text, 0)

TextBox1.Text = time2.Subtract(time1).TotalHours


Subtractメソッドなら日付が変わってもいけますが、その場合はtime1とtime2にTimeSerialではなく、
New Date()などで日付付きで値をセットする必要があります。

なのではじめからTimeSerialなど使わずにNew Dateにして置けばよいのですが、時・分・秒だけ見るとTimeSerialの方が直感的なので上記の例では採用しました。

他にもいろいろな書き方があります。ここで紹介したのは一例です。