以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  本月第一个工作日  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=141773)

--  作者:良才
--  发布时间:2019/10/10 16:51:00
--  本月第一个工作日
老师请教,本月第一个工作日和本月最后一个工作日,求代码,谢谢!
--  作者:有点蓝
--  发布时间:2019/10/10 17:50:00
--  
dim d as date = date.today
output.show(new date(d.year,d.month,1))
output.show(new date(d.year,d.month,Date.DaysInMonth(d.year,d.month)))

--  作者:良才
--  发布时间:2019/10/10 19:46:00
--  

老师,本月第一个工作日,比如:9月1日是星期天,那么本月第一个工作日是9月2日。

 

Dim d As Date = Date.today
Dim Days As Integer
Days = Date.DaysInMonth(2019,9)
For m As Integer= 1 To Days
    d = New Date(2019,9,m)
    If d.DayOfWeek = 1 OrElse d.DayOfWeek = 5 Then
        d = d
    End If
Next

output.show("本月第一个工作日:"& ?)
output.show("本月最后一个工作日:"& d)

[此贴子已经被作者于2019/10/10 22:38:14编辑过]

--  作者:有点蓝
--  发布时间:2019/10/11 8:40:00
--  
Dim d As Date = Date.today.AddMonths(-1)
Dim d1 As Date = new Date(d.year,d.month,1)
Dim d2 As Date =new Date(d.year,d.month,Date.DaysInMonth(d.year,d.month))

If d1.DayOfWeek = 0 Then
    d1 = d1.AddDays(1)
ElseIf d1.DayOfWeek = 6 Then
    d1 = d1.AddDays(2)
End If
Output.Show(d1)

If d2.DayOfWeek = 0 Then
    d2 = d2.AddDays(-2)
ElseIf d2.DayOfWeek = 6 Then
    d2 = d2.AddDays(-1)
End If
Output.Show(d2)

--  作者:lihe60
--  发布时间:2019/10/11 8:49:00
--  
dim d as date = date.today
output.show(new date(d.year,d.month,1))
output.show(new date(d.year,d.month,Date.DaysInMonth(d.year,d.month)))
这个最好包装成函数,可以直接调用。

--  作者:良才
--  发布时间:2019/10/11 9:39:00
--  

老师,忘记说法定假期

DataTables("法定假期").Select("日期 >= #" & d1 & "# and 日期 <= #" & d2 & "# and 名称 <> \'上班\'")


--  作者:有点蓝
--  发布时间:2019/10/11 9:50:00
--  
http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=140941&skin=0