if($birthDate='') then '' else year-from-date(xs:date(local-date()))-year-from-date($birthDate) -(if(month-from-date($birthDate) > month-from-date(xs:date(local-date()))) then 1 else (if(month-from-date($birthDate) < month-from-date(xs:date(local-date()))) then 0 else (if(day-from-date($birthDate) > day-from-date(xs:date(local-date()))) then 1 else 0 ) ) )Возможно, можно как-то сделать это проще, но я пока способа не нашел. Вычитание дат дает результат типа xs:dayTimeDuration вместо xs:yearMonthDuration, из которого было бы удобно извлечь число лет. А вот по числу дней число лет определить очень сложно из-за високосных годов.
barbitoff programmer`s blog
Здесь я публикую заметки из программерской жизни: грабли, на которые мне случилось наступить, проблемы, для которых было найдено элегантное (или не очень) решение, а также все, с чем мне пришлось столкнуться и чем хотелось бы поделиться =)
PS Если хотите меня поблагодарить - на странице есть 3 места, чтобы это сделать =)
четверг, 8 сентября 2011 г.
XPath: определение возраста
Подписаться на:
Комментарии к сообщению (Atom)
Комментариев нет:
Отправить комментарий