Vba 如何获取日期的天数

Vba 如何获取日期的天数,vba,vb6,Vba,Vb6,第1部分 Dim totdays as long totdays = DateDiff("d", "01/2011", DateAdd("m", 1, "01/2011")) 上述代码将返回“31” 我想得到31天的时间 预期产量 Monday (31/01/2011) 需要VB6代码帮助吗 第二部分 我想找出某个月的星期日 例如,如果我选择2012年1月,则查询应给出如下结果 01 08 15 22 29 以上日期为星期日 2012年1月的预期产量 01 08 15 22 29 像这样

第1部分

Dim totdays as long
totdays = DateDiff("d", "01/2011", DateAdd("m", 1, "01/2011"))
上述代码将返回“31”

我想得到31天的时间

预期产量

Monday (31/01/2011)
需要VB6代码帮助吗

第二部分

我想找出某个月的星期日

例如,如果我选择2012年1月,则查询应给出如下结果

01
08
15
22
29
以上日期为星期日

2012年1月的预期产量

01
08
15
22
29

像这样使用格式化函数。这里我使用了现在,但你可以传递任何日期和格式返回字符串的dayname

Format(Now, "dddd")
类似这样的东西(在中测试)

周日子查询的最终更新

根据以下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
旧的

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

您可以使用VB6中的
DateSerial
函数将字符串或整数变量转换为日期变量

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

我无法进入2011年,1,它来自文本框,如“01/2011”非常感谢您的帮助,还有一件事,我如何才能找到一个月的星期日。例如,如果我选择01/2011,从2011年1月开始有多少个星期天,我想找到。。。你能帮我一下吗…@Gopal-你是说2011年1月有多少个星期天?Anf你不是在这里问过吗?@Gopal我认为你应该问单独的问题,而不是在以后添加更多的子问题,因为你最初的问题是我的答案将根据它进行调整,这也提高了你的机会,在你之前的问题中,我无法帮助你列表请求和其他海报可能会错过你的新部分question@JP我只知道当有人编辑我自己的帖子时:)尝试{tag:vba}并将“{”和“}”替换为“[”和“]”。我编辑这篇文章是为了删除我的反对票——我想不起来为什么我会这么做。
Dim d As String
Dim datevar As Date
d = "31"
datevar = DateSerial(2011,1, Val(d))   
MsgBox Format(datevar,"DDDD dd/MMM/yyyy")