2012-01-02 103 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

相關問題