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 + "\r\n" + 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; }
string str = this.txtvalue.Text;// "13.30~14.30"; int index = str.IndexOf('~'); int length = str.Length - index - 1; string startT = str.Substring(0, index); string endT = str.Substring(index + 1, length); DateTime currentTime = DateTime.Parse(DateTime.Now.ToString("HH:mm")); DateTime beginTime = Convert.ToDateTime(startT.Replace('.', ':')); DateTime endTime = Convert.ToDateTime(endT.Replace('.', ':')); string minutes = GetTimeLength(beginTime, currentTime); string end1 = str.Substring(index + 1, length); TimeSpan endTime1 = DateTime.Parse(end1.Replace('.', ':') + ":59").TimeOfDay; TimeSpan currentDT = DateTime.Now.TimeOfDay; //过时签到 if (currentDT > endTime1)//已过签到时间 { MessageBox.Show("已过时无法签到==" + minutes); } //时间段内签到 || int.Parse(minutes) <= int.Parse(this.txtNo.Text) else if (currentTime > beginTime && currentTime <= endTime) { MessageBox.Show("签到成功2==" + minutes); } //提前签到 --当前时间小于签到开始时间 else if (int.Parse(minutes) <= int.Parse(this.txtNo.Text) && currentTime < beginTime) { MessageBox.Show("签到成功1==" + minutes); } else if (int.Parse(minutes) >= int.Parse(this.txtNo.Text) && currentTime < beginTime) { MessageBox.Show("签到时间未到,无法签到==" + minutes); }