如题
工作时间是国家法定工作日(每周5天,每天7个小时,扣除节假日等)向高手求助,感激不尽!

解决方案 »

  1.   

    System.DateTime date1 = new System.DateTime(1996, 6, 3, 22, 15, 0);
    System.DateTime date2 = new System.DateTime(1996, 12, 6, 13, 2, 0);
    System.DateTime date3 = new System.DateTime(1996, 10, 12, 8, 42, 0);// diff1 gets 185 days, 14 hours, and 47 minutes.
    System.TimeSpan diff1 = date2.Subtract(date1);// date4 gets 4/9/1996 5:55:00 PM.
    System.DateTime date4 = date3.Subtract(diff1);// diff2 gets 55 days 4 hours and 20 minutes.
    System.TimeSpan diff2 = date2 - date3;// date5 gets 4/9/1996 5:55:00 PM.
    System.DateTime date5 = date1 - diff2;
      

  2.   

    真是兴奋,一转眼就有楼上3位仁兄相助。
    同意mobydick(敌伯威|我排著队拿著爱的号码牌)的做法,希望能说得更加详细点,谢谢!
      

  3.   

    谢谢chieftech(纯真处男,欢迎诱奸(QJ太疼))
      

  4.   

    首先确定开始时间dtBegin和结束时间dtEnd。
    接下来计算天数days = (day(dtEnd-dtBegin)+1),days即结束日期减去开始日期得到的天数再加一。
    然后算周数weeks = days/7,weeks即天数除7取整。在计算余数other = days%7,即除了整周之外余下的天数
    下面明确dtBegin是星期几dayOfWeek(整数)。
    如果dtBegin是周一至周五,那么,周末的天数共有2*weeks,还需要加上余下天数中的周末
    余下天数周末按照如下计算一下(dayOfWeek+other-6)的数如果是1或者2,就把1或者2加入周末天数,其它的结果不加入。
    这样周末的天数就算完了,接下来就把dtBegin和dtEnd之间中所有在节假日表中的节假日取出,加入周末天数,拿总天数days一减,就是工作日。