以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]时段内的工作天数  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=5684)

--  作者:舜风
--  发布时间:2009/12/28 22:03:00
--  [求助]时段内的工作天数
以下代码问题在哪呢?或求新代码

Dim d1 as Date = #3/17/2002 12:30:29#
Dim d2 as Date = #1/1/2008 10:11:49#
Dim t As TimeSpan = d2 - d1
Dim Count As Integer
Dim Val As Date
For i As integer = 1 To t.Days
Val = New date(d1.year,d1.Month,i)
If Val.DayofWeek > 0 AndAlso Val.DayofWeek < 6 Then
Count = Count + 1
End If
Next
Output.Show(Count)

--  作者:舜风
--  发布时间:2009/12/29 10:35:00
--  
那位帮做个代码
--  作者:狐狸爸爸
--  发布时间:2009/12/29 10:42:00
--  
其实这个没有意义的,中国传统的节假日,很难在代码中体现:

Dim d1 as Date = #3/17/2002 12:30:29#
Dim d2 as Date = #1/1/2008 10:11:49#
Dim t As TimeSpan = d2 - d1
Dim Count As Integer
Dim Val As Date
For i As integer = 0 To t.Days
    Val = d1.adddays(1)
    If Val.DayofWeek > 0 AndAlso Val.DayofWeek < 6 Then
        Count = Count + 1
    End If
Next
Output.Show(Count)

--  作者:lxl
--  发布时间:2009/12/29 10:42:00
--  

这样算出来意义不大吧,
因为国庆、春节、五一这些法定假日加起来天数很多,和实际误差太大了吧


--  作者:舜风
--  发布时间:2009/12/29 11:11:00
--  
图片点击可在新窗口打开查看谢谢,其实这样就可以,因为节假日是没有缺勤的

如果没有工作日,那么算工资或奖金时,在一时段天数内算缺勤就会出问题

所以老爹应该考虑如易表一样,自带计算工作日的函数
--  作者:舜风
--  发布时间:2009/12/29 21:45:00
--  

更正一下:
  Val = d1.adddays(1)

应为 Val = d1.adddays(i)


--  作者:mr725
--  发布时间:2009/12/30 11:45:00
--  

学习~

[此贴子已经被作者于2009-12-30 15:19:57编辑过]