2012-01-02 102 views
4

第1部分如何获得天的日期

Dim totdays as long 
totdays = DateDiff("d", "01/2011", DateAdd("m", 1, "01/2011")) 

上面的代码将返回“31”

我想天为31

的预期输出

Monday (31/01/2011) 

需要VB6代码帮助

第2部分

我想找到特定月份的星期天....

例如,如果我选择月份01/2012,查询应该给这样

结果
01 
08 
15 
22 
29 

以上日期为星期日。

01/2012

01 
08 
15 
22 
29 

回答

4

这样的事情(在测试)

最后更新星期日子查询

由于任何日期和格式返回字符串请求在下面的Gopal发表评论

Dim strDate As String 
    Dim dtStart As Date 
    Dim dtEnd As Date 
    Dim stEnd As Date 
    Dim lngCnt As Long 
    Dim strOut As String 
    strDate = "01/2012" 
    dtStart = DateValue(strDate) 
    dtEnd = DateAdd("d", DateDiff("d", strDate, DateAdd("m", 1, strDate) - 1), dtStart) 
    lngCnt = Weekday(dtStart) - 7 
    Do 
     lngCnt = lngCnt + 7 
     strOut = strOut & Format(lngCnt, "00") & vbNewLine 
    Loop While lngCnt + 7 <= dtEnd - dtStart 
    MsgBox strOut 

已更新

注意,我需要使用lngdays-1增加超过1个月少一天(即31-JAN-2011),否则你将不得不01 - 2月 - 2011作为结果

Dim strDate As String 
Dim lngdays As Long 
strDate = "01/2011" 
lngdays = DateDiff("d", strDate, DateAdd("m", 1, strDate)) 
MsgBox Format(DateAdd("d", lngdays - 1, strDate), "dddd (dd/mm/yyyy)") 

Dim lngdays As Long 
lngdays = DateDiff("d", "01/2011", DateAdd("m", 1, "01/2011")) 
MsgBox Format(DateSerial(2011, 1, lngdays), "dddd (dd/mm/yyyy)") 
+0

我无法进入2011,1,它来自这样的文本框“01/2011” – Gopal 2012-01-02 09:25:01

+0

@gopal我已经更新了我的代码 – brettdj 2012-01-02 09:31:49

+0

非常感谢您的帮助,还有一件事,我该如何找到一个月的星期日。例如,如果我选择2011年1月,从2011年1月有多少星期天,我想找到...你能帮助我PLZ ..... – Gopal 2012-01-02 12:07:19

0

使用格式化功能像期望的输出。在这里,我现在使用,但你可以传递的DAYNAME

Format(Now, "dddd") 
0

您可以使用DateSerial功能在VB6的字符串或整数变量转换为日期变量

Dim d As String 
Dim datevar As Date 
d = "31" 
datevar = DateSerial(2011,1, Val(d)) 
MsgBox Format(datevar,"DDDD dd/MMM/yyyy") 
+0

我编辑了这个所以我可以删除我的downvote - 我不记得为什么我在第一次做到这一点。 – brettdj 2012-11-03 04:19:52

+0

感谢您重新考虑投票@brettdj – Ahmad 2012-11-03 09:40:06

相关问题