Как получить дни на дату - PullRequest
       4

Как получить дни на дату

4 голосов
/ 02 января 2012

Часть 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 ]

4 голосов
/ 02 января 2012

как-то так (проверено в )

окончательное обновление для подзапроса Sunday

Согласно запросу в комментарии от 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 января 2011 года), иначевы бы получили 01 февраля 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)")

old

 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 голосов
/ 02 января 2012

Вы можете использовать функцию 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 голосов
/ 02 января 2012

Используйте функцию форматирования следующим образом. Здесь я использовал сейчас, но вы можете передать любую дату и формат возвращаемую строку имени дня

Format(Now, "dddd")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...