Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Вычисление возраста / 9 сообщений из 9, страница 1 из 1
30.12.2009, 12:05
    #36393510
armin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вычисление возраста
В общем надо напедалить зен метод который вычисляет полный возраст пациента...то есть на выходе должно быть следующие варианты:

25 лет...так как ему больше чем один год
8 месяцев....так как ему меньше года
12 дней......так как ему меньше одного месяца

..не надо типа 25 лет 8 месяцев или там 4 месяца 6 дней...нужны тока полные лет или месяцев или дней


ClassMethod CurrentAge(birthDate As %Date) As %String
{
..........
.......
..............

q outDate
}

Буду благодарен за кусок кода если кто делал такое!!...
...
Рейтинг: 0 / 0
30.12.2009, 12:30
    #36393585
servit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вычисление возраста
DATEDIFF
Или метод $system.SQL.DATEDIFF(...) .
...
Рейтинг: 0 / 0
30.12.2009, 12:33
    #36393591
servit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вычисление возраста
И ещё .
...
Рейтинг: 0 / 0
30.12.2009, 13:17
    #36393704
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вычисление возраста
arminБуду благодарен за кусок кода если кто делал такое!!...
Продолжу свой вариант...

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
; день рождения (ГГГГММДД)
s d1= 19650324 
; день на который нужно считать возраст (ГГГГММДД)
s d2= 20081021 
s dat=d2-d1
s val=dat\ 10000 
q:val val
s val=dat\ 100 
q:val val
q dat
...
Рейтинг: 0 / 0
03.01.2010, 13:50
    #36396144
doublefint
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вычисление возраста
$system.SQL.DATEDIFF("yy",birthDate,сейчас) при рожден=29.12.2009 и сейчас=03.01.2010 даст 1 год
у krvsa, при других значениях d1 и d2 будут проблемы
умолчания в постановке трактую в свою пользу ;)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
ClassMethod CurrentAge(рожден As %Date={+$h}) As %String {
 
 s сейчас=+$h,возраст=сейчас-рожден
 
 ;Високосные?, а оно нам надо?
 s годиков=возраст\ 365  q:годиков> 0  годиков_$S(годиков< 2 :" год",годиков< 5 :" года", 1 :" лет")
 
 ;Ничего не смущает в цифре  31 ? Ничего!
 s месяцев=возраст\ 31  q:месяцев> 0  месяцев_$S(месяцев< 2 :" месяц",месяцев< 5 :" месяца", 1 :" месяцев")
 
 ;Да и февраль отличный месяц
 q возраст_$S(возраст< 2 :" день",возраст< 5 :" дня", 1 :"дней")

 }
...
Рейтинг: 0 / 0
03.01.2010, 15:19
    #36396187
ну я
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вычисление возраста
doublefintумолчания в постановке трактую в свою пользу
Золотые слова.
...
Рейтинг: 0 / 0
03.01.2010, 15:54
    #36396200
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вычисление возраста
doublefint у krvsa, при других значениях d1 и d2 будут проблемы
Это каких же?
...
Рейтинг: 0 / 0
10.01.2010, 23:36
    #36402735
doublefint
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вычисление возраста
krvsa,
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
 s d1= 20091124  ; день рождения (ГГГГММДД)
 s d2= 20100124  ; день на который нужно считать возраст (ГГГГММДД)
 s dat=d2-d1 ;разница  61  день, но  20100124 - 20091124 = 9000 
 s val=dat\ 10000 
 q:val val  ;два месяца не год
 s val=dat\ 100  ;но и не девять, или  90 
 q:val val
q dat
...
Рейтинг: 0 / 0
11.01.2010, 08:38
    #36402902
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вычисление возраста
doublefint , ясно...
...
Рейтинг: 0 / 0
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Вычисление возраста / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]