Имя пользователя:
Пароль:
 

Название темы: Работа с датами
Показать сообщение отдельно

Пользователь


Сообщения: 120
Благодарности: 22

Профиль | Цитировать


Нужная функция, для правильного представления числа в текстовом виде
Код: Выделить весь код
Public Function fnNum2Word(ByVal inp As Long, ByVal fir As String, ByVal sec As String, ByVal many As String) As String
Dim tmp As String
    tmp = Format$(inp, "000")
    If Len(tmp) > 2 Then tmp = Mid(tmp, Len(tmp) - 1, 2)
    Select Case Val(Mid(tmp, 1, 1) & "")
        Case 1
            Select Case Val(Mid(tmp, 2, 1) & "")
                Case 0 - 9
                    fnNum2Word = many
            End Select
        Case 0, 2 To 9
            Select Case Val(Mid(tmp, 2, 1) & "")
                Case 1
                    fnNum2Word = fir
                Case 2 To 4
                    fnNum2Word = sec
                Case 0, 5 To 9
                    fnNum2Word = many
            End Select
    End Select
End Function
собственно функция выдающая в окно Immediate результат, который требуется по условиям поставленной задачи

Как вызвать окно Immediate
читать дальше »
Появляется/Активируется по нажатии сочетания клавиш Ctrl+G

Код: Выделить весь код
Sub CalculateBirthdayDiffs(ByVal fDate As String, ByVal mDate As String)
Dim yearDiff As Long
Dim monthDiff As Long
Dim dayDiff As Long
    If IsDate(fDate) And IsDate(fDate) Then
        If CDate(fDate) = CDate(mDate) Then
            Debug.Print "Папа и мама - родились в один день"
        ElseIf CDate(fDate) < CDate(mDate) Then
            yearDiff = DateDiff("yyyy", fDate, mDate)
            Debug.Print "Папа старше мамы на " & yearDiff & " " & fnNum2Word(yearDiff, "год", "года", "лет")
        Else
            yearDiff = DateDiff("yyyy", fDate, mDate)
            Debug.Print "Папа младше мамы на " & yearDiff & " " & fnNum2Word(yearDiff, "год", "года", "лет")
        End If
        If Month(fDate) > Month(mDate) Then
            monthDiff = Month(fDate) - Month(mDate)
            Debug.Print "у мамы на " & monthDiff & " " & fnNum2Word(monthDiff, "месяц", "месяца", "месяцев") & " раньше день рождения"
        ElseIf Month(fDate) < Month(mDate) Then
            monthDiff = Month(mDate) - Month(fDate)
            Debug.Print "у папы на " & monthDiff & " " & fnNum2Word(monthDiff, "месяц", "месяца", "месяцев") & " раньше день рождения"
        End If
        If Day(fDate) > Day(mDate) Then
            dayDiff = Day(fDate) - Day(mDate)
            Debug.Print "по дню у мамы день рождения раньше на " & dayDiff & " " & fnNum2Word(dayDiff, "день", "дня", "дней")
        ElseIf Day(fDate) < Day(mDate) Then
            dayDiff = Day(mDate) - Day(fDate)
            Debug.Print "по дню у папы день рождения раньше на " & dayDiff & " " & fnNum2Word(dayDiff, "день", "дня", "дней")
        End If
    End If
End Sub

Отправлено: 08:41, 01-02-2011 | #3

Название темы: Работа с датами