问题:
现在有一个工时录入系统,每天都有员工录入工时(起始和结束时间)如:8:30  到 18:30!(每天时间不固定)
如何统计某个员工在这个月内的实际工时???

解决方案 »

  1.   

    DateTime dt1 = DateTime.Now;
    DateTime dt2 = DateTime.Now.AddDays(1);
    TimeSpan ts = (dt2 - dt1);
    double time = ts.TotalHours;
      

  2.   

    这个好像是数据库里的, 可以用 datediff 函数
    然后用 sum 函数搞一下
      

  3.   


    select sum(datediff(hour,起始时间字段名,结束时间字段名)) as 工时 from 表名 where 员工id=员工的id
      

  4.   


            static void Main(string[] args)
            {
                DateTime dt1 = Convert.ToDateTime("2009-09-16 08:30");
                DateTime dt2 = Convert.ToDateTime("2009-09-16 16:25");            TimeSpan i = dt2.Subtract(dt1);
                Console.WriteLine(i.ToString());
                Console.ReadLine();
            }
      

  5.   

    TimeSpan t = TimeSpan.FromTicks(t2.Ticks - t1.Ticks);
    t.Hours
      

  6.   

    timespan时间差,看里面小时与多少就知道了!
      

  7.   

    还有方法就是数据库里面的!CONVERT(数据类型,字段名,格式)然后能非常方便的求到里面的时间差!蛮好用的!希望能帮到 楼主!
      

  8.   

    数据库
    select cast(datediff(minute,start_time,end_time)/60.0 as numeric(12,2)) hours
    from tb
      

  9.   

    select sum(datediff(hour,起始时间字段名,结束时间字段名)) as 工时 from 表名 where 员工id=员工的id这个 用程序就是DateTime dt1 = DateTime.Now; 
    DateTime dt2 = DateTime.Now.AddDays(1); 
    TimeSpan ts = (dt2 - dt1); 
    double time = ts.TotalHours;
      

  10.   

            DateTime _dt1 = new DateTime(2009,09,16,12,30,00);
            DateTime _dt2 = new DateTime(2009, 09, 16, 13, 40, 00);
            Response.Write((_dt2 - _dt1).Hours.ToString());
      

  11.   

    timespan时间差,看里面小时与多少就知道了!
    DateTime dt1 = DateTime.Now; 
    DateTime dt2 = DateTime.Now.AddDays(1); 
    TimeSpan ts = (dt2 - dt1); 
    double time = ts.TotalHours;
      

  12.   

    楼上所述应该能解决楼主的问题了!timespan时间间隔!
      

  13.   

    1楼的就可以了
    TimeSpan就行了
      

  14.   

    up 1楼的没问题public double GetHours(DateTime dt1,DateTime dt2)

    TimeSpan ts = (dt2 - dt1); 
    return ts.TotalHours;
    }
      

  15.   

    数据库里用datediff如果是代码用timespan
      

  16.   

    select sum(datediff(hour,起始时间字段名,结束时间字段名)) from tableName where id=编号
      

  17.   

    TimeSpan timespan = TimeSpan.FromTicks(t2.Ticks - t1.Ticks);timespan .Hours
      

  18.   

    我要获得的不只是一天的时间,是一个月的三十一或是三十天之中每天的工时,而且每天时间不固定!还要用gridview来绑定。谁能再说详细点啊
      

  19.   


    //全部秒都出来了,剩下就不用说了吧
      TimeSpan t1 = new TimeSpan(Date.Ticks);
                    TimeSpan t2 = new TimeSpan(DateTime.Now.Ticks);
                    TimeSpan t3 = t2.Subtract(t1);
                    int CureetSecond = t3.Days * 24 * 60 * 60 + t3.Hours * 60 * 60 + t3.Minutes * 60 + t3.Seconds;
      

  20.   

    DateTime dt1 = DateTime.Now; 
    DateTime dt2 = DateTime.Now.AddDays(1); 
    TimeSpan ts = (dt2 - dt1); 
    double time = ts.TotalHours;
      

  21.   


    数据库:
    select sum(datediff(hour,起始时间字段名,结束时间字段名)) as 工时 from 表名 where 员工id=员工的idc# static void Main(string[] args)
            {
                DateTime dt1 = Convert.ToDateTime("2009-09-16 08:30");
                DateTime dt2 = Convert.ToDateTime("2009-09-16 16:25");            TimeSpan i = dt2.Subtract(dt1);
                Console.WriteLine(i.ToString());
                Console.ReadLine();
            }
      

  22.   

    TimeSpan t = TimeSpan.FromTicks(t2.Ticks - t1.Ticks);
    t.Hours
      

  23.   

    DateTime dt1 = DateTime.Now; 
    DateTime dt2 = DateTime.Now.AddDays(1); 
    TimeSpan ts = (dt2 - dt1); 
    double time = ts.TotalHours; 
    这个绝对对!
      

  24.   

    select datediff(hour,startTime,endTime) Hours
      

  25.   

    select sum(datediff(hour,起始时间字段名,结束时间字段名)) as 工时 from 表名 where 员工id=员工的id 这个 用程序就是 DateTime dt1 = DateTime.Now; 
    DateTime dt2 = DateTime.Now.AddDays(1); 
    TimeSpan ts = (dt2 - dt1); 
    double time = ts.TotalHours; 
    顶这个
      

  26.   


     DateTime begin = DateTime.Now;//第一个时间
                DateTime endtime = DateTime.Now;//第二个时间
                TimeSpan timespan = endtime - begin;
    timespan.timespan.TotalMilliseconds.ToString()//这个是毫秒的
      

  27.   

    我要获得的不只是一天的时间,是一个月的三十一或是三十天之中每天的工时,而且每天时间不固定!还要用gridview来绑定。谁能再说详细点啊
    2009-09-16 08:30 
    2009-09-16 16:25
    这个时间只是假设的,每天时间不固定!唉……怎么没有人能理解这意思吗?
      

  28.   


    在gridview的rowdatabind()事件里对每一天计时
      

  29.   

    SQL中是有这个方法,如下:
    senderdate=2009-9-22
    DATEDIFF(year, SenderDate, GETDATE())--两个日期中相差年数
    DATEDIFF(month, SenderDate, GETDATE())
    DATEDIFF(minute, SenderDate, GETDATE())
    DATEDIFF(day, SenderDate,GETDATE())
    DATEDIFF(minute, SenderDate, GETDATE())可以根据个人需要运用