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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
'**********************************************************************************************************
' Nazwa: ileDniWMiesiacu
' Autor: mielk | 2012-03-11
'
' Opis: Funkcja zwraca liczbę dni w podanym miesiącu.
'
' Argumenty:
' miesiac Miesiąc, dla którego ma zostać zwrócona liczba dni.
' Jeżeli wartość tego argumentu wykracza poza zakres 1-12, do kalkulacji przyjmowany
' jest miesiąc z poprzednich lub następnych lat, np. miesiąc o numerze 14 dla roku
' 2012 oznacza de facto luty 2013, miesiąc 0 dla roku 2012 to grudzień 2011, a
' miesiąc -3 dla roku 2012 to wrzesień 2011.
' rok Argument opcjonalny.
' Rok, w którym znajduje się rozpatrywany miesiąc. Jeżeli argument jest pominięty,
' domyślnie przyjmowany jest aktualny rok.
'
'
' Zwraca:
' Byte Liczba dni w określonym miesiącu określonego roku.
'
'
' --- Zmiany ----------------------------------------------------------------------------------------------
' 2012-03-11 mielk Utworzenie funkcji.
'**********************************************************************************************************
Public Function ileDniWMiesiacu(miesiac As Integer, Optional rok As Integer) As Byte
Const NAZWA_METODY As String = "ileDniWMiesiacu"
'------------------------------------------------------------------------------------------------------
Dim iRok As Integer
'------------------------------------------------------------------------------------------------------
'Przypisz do zmiennej [iRok] wartość przekazanego argumentu [rok] lub aktualny rok, -----------------|
'jeżeli ten argument został pominięty. '|
If rok = 0 Then '|
iRok = VBA.Year(VBA.Date) '|
Else '|
iRok = rok '|
End If '|
'----------------------------------------------------------------------------------------------------|
ileDniWMiesiacu = VBA.Day(VBA.DateSerial(iRok, miesiac + 1, 1) - 1)
End Function