private void button5_Click(object sender, EventArgs e) { string str = "8.00~12.30"; int index = str.IndexOf('~'); int length = str.Length - index - 1; string begin = str.Substring(0, index); string end = str.Substring(index + 1, length); string timea = "8:30"; string timeb = "11:30"; DateTime beginTime = Convert.ToDateTime(timea); DateTime endTime = Convert.ToDateTime(timeb); var aaa = GetTimeLength(beginTime, endTime); var bbb = GetTimeLenght2(beginTime, endTime); MessageBox.Show("GetTimeLength==" + aaa + " " + bbb); } public string GetTimeLength(DateTime beginTime, DateTime endTime) { try { string timeLength = string.Empty; TimeSpan begin = new TimeSpan(beginTime.Ticks); TimeSpan end = new TimeSpan(endTime.Ticks); TimeSpan ts = begin.Subtract(end).Duration(); timeLength = Convert.ToString(ts.Hours * 60 + ts.Minutes); return timeLength; } catch { } return string.Empty; } public string GetTimeLenght2(DateTime DateTime1, DateTime DateTime2) { string dateDiff = string.Empty; try { TimeSpan ts1 = new TimeSpan(DateTime1.Ticks); TimeSpan ts2 = new TimeSpan(DateTime2.Ticks); TimeSpan ts = ts1.Subtract(ts2).Duration(); string hours = ts.Hours.ToString(), minutes = ts.Minutes.ToString(), seconds = ts.Seconds.ToString(); if (ts.Hours < 10) { hours = "0" + ts.Hours.ToString(); } if (ts.Minutes < 10) { minutes = "0" + ts.Minutes.ToString(); } if (ts.Seconds < 10) { seconds = "0" + ts.Seconds.ToString(); } dateDiff = hours + ":" + minutes + ":" + seconds; } catch { } return dateDiff; }