这个是正常工作日计算白天  8-18点上班的情况,其间 12-13点为休息时间,我已经计算排出了,现在计算夜班的时间把我难死了,想了一个头都大了;   夜班情况是这样的: 正常的上班时间为:8个小时 ,20-5点 期间 0-1点为休息时间  以下代码是计算的白天的上班时间,在线等待 谢谢您 请高手指点:      private void timesub()
{ string strSql1 = "SELECT COUNT(*) FROM leavetimesubtract WHERE estimate = 1 AND datetime >= '" + starttime.Text.Trim()+ "' AND datetime <= '" + endtime.Text.Trim () + "'" ;//计算实际请假天数

    DbConn conn = new DbConn () ; OleDbConnection con = conn.connection () ; OleDbCommand cmd =  new OleDbCommand(strSql1,con);

DateTime Dropstarttime1 = DateTime.Parse(starttime.Text.Trim()+" "+Dropstarttime.SelectedIndex.ToString().Trim()+":"+24);//得到请假开始时间 DateTime Dropendtime1 = DateTime.Parse(endtime.Text.Trim ()+" "+Dropendtime.SelectedIndex.ToString().Trim()+":"+24);//得到请假结束时间 TimeSpan timetract = Dropendtime1.Subtract(Dropstarttime1);
con.Close () ;

}

解决方案 »

  1.   

    不是很明白你的需求
    一般来说
    白天判断  8<dt<18
    晚上判断  dt>20 or dt<5
      

  2.   

    刚刚  huguang(胡广) 我就是这个意思白天判断  8<dt<18
    晚上判断  dt>20 or dt<5问题详细情况: 
         1: 首先我在数据库按行事历抓出2005年的正常工作日,再次计算白天判断  8<dt<18 的情况  ,"接下来就是要计算晚上判断  dt>20 or dt<5的情况" 
         我不知道程序怎么处理  
         我的思路是:把 dt>20 or dt<5      转化为 白天的 8<dt<18 的情况 ,然后按白天的方法计算即可,现在就是不知道程序怎么处理.