Страница: 1 |
Страница: 1 |
Вопрос: прога, определяющая возраст
Добавлено: 04.03.07 21:44
Автор вопроса: Alias
подскажите код программы, которая определяла бы возраст человека по дате рождения
Ответы
Всего ответов: 7
Номер ответа: 1
Автор ответа:
Боцман
ICQ: 295725312
Вопросов: 53
Ответов: 830
Web-сайт:
Профиль | | #1
Добавлено: 04.03.07 23:43
Function CalcAge(datEmpDateOfBirth As Variant) As Integer
CalcAge = Int(DateDiff("y", CDate(datEmpDateOfBirth), Date) / 365.25)
End Function
Номер ответа: 2
Автор ответа:
ADSemenov.ru
Вопросов: 5
Ответов: 276
Web-сайт:
Профиль | | #2
Добавлено: 05.03.07 10:27
____ А зачем делить на 365,25?
____ Если хотелось выразить в целых годах, то для "очень старых" объектов это не верно.
____ А что, DateDiff() напрямую по годам не работает?
Номер ответа: 3
Автор ответа:
KreAtoR
Вопросов: 120
Ответов: 438
Профиль | | #3
Добавлено: 05.03.07 12:56
а старые это сколько
Номер ответа: 4
Автор ответа:
ADSemenov.ru
Вопросов: 5
Ответов: 276
Web-сайт:
Профиль | | #4
Добавлено: 05.03.07 13:36
____ Больше 400 лет.
Номер ответа: 5
Автор ответа:
Боцман
ICQ: 295725312
Вопросов: 53
Ответов: 830
Web-сайт:
Профиль | | #5
Добавлено: 05.03.07 14:03
У меня таких друзей, со стажем нет...
Все зависит от задачи лично мне для предупреждения о дате рождения хватает моей функции.
CalcAge = Int(DateDiff("y", CDate(DateOfBirth), Date) / 365.25)
Dim Nd As Integer
Dim № As Integer
№ = CalcAge
If CalcAge = 0 Then
CalcAge = "первый год"
Exit Function
End If
If CalcAge = 100 Then
CalcAge = CalcAge & "лет"
Exit Function
End If
Nd = Right(CalcAge, 1)
If Nd = 1 Then
CalcAge = CalcAge & " год"
Exit Function
End If
If Nd = 1 Then
CalcAge = CalcAge & " год"
Exit Function
End If
If № < 10 Then
If Nd <= 4 Then CalcAge = CalcAge & " года"
End If
If № > 20 Then
If Nd <= 4 Then CalcAge = CalcAge & " года"
End If
If № < 10 Then
If Nd > 4 Then CalcAge = CalcAge & " лет"
End If
If № < 20 Then
If № < 9 Then Exit Function
If Nd > 0 Then CalcAge = CalcAge & " лет"
End If
If № > 19 Then
If Nd > 4 Then CalcAge = CalcAge & " лет"
If Nd = 0 Then CalcAge = CalcAge & " лет"
End If
End Function
Form1.Caption = CalcAge("09.05.1945"
End Sub
Вот полный код
Номер ответа: 6
Автор ответа:
Боцман
ICQ: 295725312
Вопросов: 53
Ответов: 830
Web-сайт:
Профиль | | #6
Добавлено: 06.03.07 20:41
Смотрю интерес не ослабевает, вот вам моя версия
мастера заполнения + дата дня рождения.
http://rus-skipper.narod.ru/raznoe/Dat.zip
если кому нужно, вышлю исходник.
Номер ответа: 7
Автор ответа:
Alias
Вопросов: 8
Ответов: 15
Профиль | | #7
Добавлено: 11.03.07 19:46
хотя может показаться и приметивно но я делаю так:
Dim ñ, ïî, kolvo As Variant '
Dim b, c, a, e, f, r, Vozrast As Integer
a = Int(TextBox2.Text)
e = Int(TextBox9.Text)
r = Int(TextBox14.Text)
b = Year(Date)
c = Month(Date)
f = Day(Date)
If c > e Then
Vozrast = Str(b - a)
TextBox13.Text = Vozrast
Else
Vozrast = Str(b - a - 1)
TextBox13.Text = Vozrast
End If
If c >= e Then
If f > r Then
Vozrast = Str(b - a)
TextBox13.Text = Vozrast
Else
Vozrast = Str(b - a - 1)
TextBox13.Text = Vozrast
End If
If c >= e Then
If f >= r Then
Vozrast = Str(b - a)
TextBox13.Text = Vozrast
Else
Vozrast = Str(b - a - 1)
TextBox13.Text = Vozrast
End If
End If
End If