以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  请问如何确定两个日期之间有几个星期一?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=34146)

--  作者:xfilemark
--  发布时间:2013/5/31 16:39:00
--  请问如何确定两个日期之间有几个星期一?
请问诸位师傅大侠:如何确定两个日期之间有几个星期一?

谢谢!

--  作者:Bin
--  发布时间:2013/5/31 16:44:00
--  
循环两个日期之间的每一天.判断这一天是星期几  然后累计.
--  作者:xfilemark
--  发布时间:2013/5/31 16:45:00
--  
有什么方法或函数没?
--  作者:狐狸爸爸
--  发布时间:2013/5/31 16:50:00
--  

没有的,只能自己写代码:

 

Dim dt1 As Date = #1/1/2012#
Dim dt2 As Date = #5/20/2012#
Dim dt As Date
Dim cnt As Integer
For i As Integer = 0 To (dt2-dt1).TotalDays
    dt = dt1.AddDays(i)
    If dt.DayOfWeek = 1 Then
        cnt = cnt + 1
    End If
Next
output.show(cnt)


--  作者:xfilemark
--  发布时间:2013/5/31 17:01:00
--  
非常谢谢 FoxFather和Bin。
FoxFather总能非常清晰地抓住我需求的关键点。尽管我的表达能力差地要命!   :-)

--  作者:don
--  发布时间:2013/5/31 17:36:00
--  
以下是引用狐狸爸爸在2013-5-31 16:50:00的发言:

没有的,只能自己写代码:

 

Dim dt1 As Date = #1/1/2012#
Dim dt2 As Date = #5/20/2012#
Dim dt As Date
Dim cnt As Integer
For i As Integer = 0 To (dt2-dt1).TotalDays
    dt = dt1.AddDays(i)
    If dt.DayOfWeek = 1 Then
        cnt = cnt + 1
    End If
Next
output.show(cnt)


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

這太低效了吧!


Dim dt1 As Date = #1/1/2000#

Dim dt2 As Date = #12/1/2012#

Dim n1 As Integer


n1 =dt1.DayOfWeek

dt1 = dt1.addDays(1-n1 )

dt2 = dt2.addDays(1-n1)

n1 = Int(((dt2-dt1).TotalDays+1)/7)+1

If  dt2.DayOfWeek = 1 Then n1+=1


Output.Show(n1)




[此贴子已经被作者于2013-5-31 18:45:19编辑过]

--  作者:狐狸爸爸
--  发布时间:2013/6/1 10:23:00
--  
呵呵,你这个太伤脑细胞了。
--  作者:xfilemark
--  发布时间:2013/6/1 10:32:00
--  
论坛里绝顶高手如云,让学习过程也变得非常过瘾!!!

:-)

--  作者:程兴刚
--  发布时间:2013/6/1 10:52:00
--  
N1= (dt2-dt1-n1)\\7
--  作者:don
--  发布时间:2013/6/1 12:09:00
--  
以下是引用狐狸爸爸在2013-6-1 10:23:00的发言:
呵呵,你这个太伤脑细胞了。
哈哈,還真是個簡單快樂人啊!可惜投錯了胎,上天讓你做個編程的人,不由你了!