Функция для Даты

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Arto
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 125
Зарегистрирован: 16.04.2002 (Вт) 18:23

Функция для Даты

Сообщение Arto » 29.04.2004 (Чт) 9:36

Привет всем
Есть ли какая-нибудь функция по которой можно определить последний день конкретного месяца
С уважением

Aleksej
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 191
Зарегистрирован: 03.06.2003 (Вт) 9:58

Сообщение Aleksej » 29.04.2004 (Чт) 9:42

Код: Выделить всё
Private Function FindLastDay(strYear As String, Month As String) As Integer
    Dim i As Integer
    Dim TempDate As String
    Dim TempDay As Integer
   
    On Error Resume Next
    TempDate = "01/" & Month & "/" & strYear
    FirstDay = Weekday(TempDate, vbMonday)
    For i = 31 To 28 Step -1
        TempDate = i & "/" & Month & "/" & strYear
        TempDay = Weekday(TempDate, vbMonday)
            If TempDay <> 0 Then
                Exit For
            End If
    Next i
FindLastDay = i
End Function

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 29.04.2004 (Чт) 9:47

Думаю, можно еще проще: взять первый день следующего месяца и функцией DateAdd() вычесть один день :) .

Arto
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 125
Зарегистрирован: 16.04.2002 (Вт) 18:23

Сообщение Arto » 29.04.2004 (Чт) 9:53

СПАСИБО...

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 29.04.2004 (Чт) 9:55

Код: Выделить всё
Function LastDay(ByVal ye As Long, ByVal mon As Long) As Long
  If mon = 2 Then
    If Month(DateSerial(ye, mon, 29)) = 2 Then LastDay = 29 Else LastDay = 28
  Else
    LastDay = Choose(mon, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31)
  End If
End Function
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Arto
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 125
Зарегистрирован: 16.04.2002 (Вт) 18:23

Сообщение Arto » 29.04.2004 (Чт) 11:06

СПАСИБО...

Samopal
Начинающий
Начинающий
 
Сообщения: 1
Зарегистрирован: 24.05.2004 (Пн) 2:45

Сообщение Samopal » 24.05.2004 (Пн) 3:46

DateSerial(Year, Month, 0)


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 5

    TopList