以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]还是那个计算出勤天数的问题,狐神帮助一下  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=23236)

--  作者:西瓜住持
--  发布时间:2012/9/6 12:42:00
--  [求助]还是那个计算出勤天数的问题,狐神帮助一下

 

是否可以做成类似这样的函数呢?计算出每月的出勤天数

GetWorkDays(入职日期,离职日期)

如果入职日期为空,则默认从本月1号开始

如果离职日期为空,则默认计算到当月最后一天,

如果离职日期不为空,则默认计算入职日期到离职日期之间的天数

 

我觉得这个功能很多地方用到,狐神帮助完善一下

====================================

Dim lw As new List(of Date)
lw.add(#1/21/2012#)
lw.add(#1/29/2012#)
lw.add(#3/31/2012#)
lw.add(#4/1/2012#)
lw.add(#4/28/2012#)
lw.add(#9/29/2012#)
Dim jr As New List(of Date)
jr.add(#1/1/2012#)
jr.add(#1/2/2012#)
jr.add(#1/3/2012#)
jr.add(#2/22/2012#)
jr.add(#2/23/2012#)
jr.add(#2/24/2012#)
jr.add(#2/25/2012#)
jr.add(#2/26/2012#)
jr.add(#2/27/2012#)
jr.add(#2/28/2012#)
jr.add(#4/2/2012#)
jr.add(#4/3/2012#)
jr.add(#4/4/2012#)
jr.add(#4/29/2012#)
jr.add(#4/30/2012#)
jr.add(#5/1/2012#)
jr.add(#6/22/2012#)
jr.add(#6/23/2012#)
jr.add(#6/24/2012#)
jr.add(#9/30/2012#)
jr.add(#10/1/2012#)
jr.add(#10/2/2012#)
jr.add(#10/3/2012#)
jr.add(#10/4/2012#)
jr.add(#10/5/2012#)
jr.add(#10/6/2012#)
jr.add(#10/7/2012#)
Dim m As Integer = 10
Dim cnt As Integer
For i As Integer = 1 To Date.DaysInMonth(2012,m)
    Dim dt As new Date(2012,m,i)
    If jr.Contains(dt) Then
    ElseIf lw.Contains(dt) Then
        cnt = cnt +1
    ElseIf dt.DayOfWeek= 0 OrElse dt.DayOfWeek = 6 Then
    Else
        cnt = cnt +1
    End If
Next
messagebox.show(cnt)


--  作者:狐狸爸爸
--  发布时间:2012/9/6 12:45:00
--  

算出每月的加起来,这个只有死办法。

记得第一个月和最后一个月特殊。