如何获得约会的日子

时间:2012-01-02 08:53:27

标签: vba vb6

第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

3 个答案:

答案 0 :(得分: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天(即2011年1月31日),否则您将在2011年2月1日之前添加

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)")

答案 1 :(得分:0)

使用这样的格式化功能。在这里我使用了Now但你可以传递任何日期并格式化dayname

的返回字符串
Format(Now, "dddd")

答案 2 :(得分:0)

您可以使用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")