|
|
|
| нужно вывести возраст человека. соответтсвенно вычисляется по формуле:
Сегодня - Дата рождения.
Как задать сегодняшнюю дату в VBA? | |
|
| |
|
|
|
| Да так и задать:
Возраст = Date - ДатаРождения | |
|
| |
|
|
|
| т.е. нужно вычесть а потом результат разделить на 361? а как его округлить? ABS? | |
|
| |
|
|
|
| результат выводит в количестве дней, а возраст мы измеряем годами. Как точно задать так чтобы считало именно года | |
|
| |
|
|
|
| ну если грубо, то можно так
Возраст = format(Date, "YYYY") - format(ДатаРождения, "YYYY") | |
|
| |
|
|
|
| http://hiprog.com/index.php?option=com_content&task=view&id=396
'Функция определения полных лет со дня рождения
Function CalcAge(dteBirthdate As Date) As Long
'В качестве параметра dteBirthdate необходимо задать дату рождения
'Пример: MsgBox CalcAge("09/03/75")
Dim lngAge As Long
If Not IsDate(dteBirthdate) Then
dteBirthdate = Date
End If
'Проверить, чтобы в качестве входного параметра не была задана дата в будущем
If dteBirthdate > Date Then
dteBirthdate = Date
End If
'Подсчет разницы в годах между текущей датой и датой рождения
lngAge = DateDiff("yyyy", dteBirthdate, Date)
'Вычитается один год, если в этом году дня рождения еще не было
If DateSerial(Year(Date), Month(dteBirthdate), Day(dteBirthdate)) > Date Then
lngAge = lngAge - 1
End If
CalcAge = lngAge
MsgBox "Итого полных лет - " & CalcAge
End Function
|
| |
|
| |