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

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

Спасибо.
...
Рейтинг: 0 / 0
Как определить кол-во дней в неделе в разрезе месяца?
    #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
Как определить кол-во дней в неделе в разрезе месяца?
    #35993963
Count Day of Week
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, то что нужно!
...
Рейтинг: 0 / 0
Как определить кол-во дней в неделе в разрезе месяца?
    #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
Как определить кол-во дней в неделе в разрезе месяца?
    #35994174
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
особо не тестировал, хорошо , что проверили
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как определить кол-во дней в неделе в разрезе месяца?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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