Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как определить кол-во дней в неделе в разрезе месяца? / 5 сообщений из 5, страница 1 из 1
19.05.2009, 12:22
    #35993710
Count Day of Week
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить кол-во дней в неделе в разрезе месяца?
Всем доброго времени суток!

В месяце пять недель (опустим февраль). В разрезе месяца в перовй и (или) последней неделе может быть дней не 7. Подскажите, пожалуйста, как в VB определить сколько дней в каждой неделе для текущего месяца?

Спасибо.
...
Рейтинг: 0 / 0
19.05.2009, 12:54
    #35993815
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить кол-во дней в неделе в разрезе месяца?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
Dim i As Integer
Dim d As Date
Dim dp As Date
Dim dn As Date
Dim days As Byte
Dim dd As Integer
Dim mm As Integer
Dim yy As Integer
Dim ww As Integer
Dim j As Integer

d = Now
mm = VBA.Month(d)
yy = VBA.Year(d)

dp = VBA.DateSerial(yy, mm,  1 )
dn = VBA.DateSerial(yy, mm +  1 ,  1  -  1 )
days = DateDiff("d", dp, dn, vbMonday)


j =  1 
Debug.Print "=== неделя " & j & " ==="
For i =  1  To days
    d = VBA.DateSerial(yy, mm, i)
    ww = VBA.Weekday(d, vbMonday)
    If ww =  1  Then
         j = j +  1 
        Debug.Print "=== неделя " & j & " ==="
    End If
    Debug.Print VBA.WeekdayName(ww) & vbTab & VBA.Format$(d, "dd.mm.yyyy")
Next i
...
Рейтинг: 0 / 0
19.05.2009, 13:36
    #35993963
Count Day of Week
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить кол-во дней в неделе в разрезе месяца?
Спасибо, то что нужно!
...
Рейтинг: 0 / 0
19.05.2009, 14:23
    #35994154
Count Day of Week
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить кол-во дней в неделе в разрезе месяца?
Konst_One,

только ошибочка есть: количество дней в месяце неправильно считается (потестировал на январе)

days = DateDiff("d", dp, dn, vbMonday)

предлагаю свой вариант

Public Function DaysinMonth(Optional pDate As Date = 0) As IntegerIf pDate = 0 Then
pDate = Date
End If
DaysinMonth = DateSerial(Year(pDate), Month(pDate) + 1, 1) - DateSerial(Year(pDate), Month(pDate), 1)
End Function
...
Рейтинг: 0 / 0
19.05.2009, 14:27
    #35994174
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить кол-во дней в неделе в разрезе месяца?
особо не тестировал, хорошо , что проверили
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как определить кол-во дней в неделе в разрезе месяца? / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]