VBScript Определите, если человек старше 18 лет, основываясь на дате его рождения. - PullRequest
1 голос
/ 30 марта 2010

У меня есть DOB моих пользователей в виде строки (не спрашивайте), как я могу надежно проверить, старше 18 лет? Буду ли я использовать DateDiff? Как мне сначала преобразовать строку в дату? Дата указывается в формате дд / мм / гггг.

Большое спасибо Jonathan

Ответы [ 5 ]

0 голосов
/ 26 июля 2012

Возьмите их DOB, добавьте 18 лет и посмотрите, будет ли текущая дата такой же или больше.

0 голосов
/ 26 июля 2012

А что, если d=02/09/1994, ds = 26/07/2012. datediff("yyyy", d, ds) дает тебе 18, но человеку все еще не 18, ему придется подождать несколько месяцев. Может быть, вам нужно сравнить по месяцам?

0 голосов
/ 30 марта 2010

Что-то вроде:

stringDate = "02/12/1990"
if IsDate(stringDate) then
    document.write(DateDiff(yyyy, CDate(stringDate), Date()))
end if
0 голосов
/ 30 марта 2010

Функция CDate в VBScript использует текущую локаль для преобразования даты.Вы можете столкнуться с проблемами.

Альтернативой может быть проделать длинный путь и проанализировать дату:

d = "02/05/1984"

sYear = cint(right(d,4))
sMonth = cint(mid(4,2))
sDay = cint(left(d,2))

ds = DateSerial(sYear, sMonth, sDay)

Теперь вы можете указать свой DateDiff:

if ( DateDiff( "yyyy", d, ds ) > 18 ) ...
0 голосов
/ 30 марта 2010

Да, вам понадобится CDate для преобразования вашей строки, а затем DateDiff ("гггг", дата1, дата2), поскольку вам действительно нужен год.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...