![]() |
#9 |
Участник
|
Цитата:
Сообщение от mazzy
![]() А блин... В Аксапте sign какой-то странный. Он выдает только два значения +1 или -1. Правильный код с учетом этой багофичи:
X++: { Date dateFrom = 01\06\1995; Date dateTo = 01\04\2008; int years = year(dateTo) - year(dateFrom); int month = mthofyr(DateTo) - mthofYr(dateFrom); int month_correction = (DateFrom == DateTo) ? 0 : (dayofmth(DateFrom) > dayofmth(DateTo) ? sign(DateFrom - DateTo) : 0); return ((years * 12) + month + month_correction; } X++: { Date dateFrom = 01\06\1995; Date dateTo = 01\04\2008; int years; int month; int month_correction; if(DateFrom == DateTo) return 0; years = year(dateTo) - year(dateFrom); month = mthofyr(DateTo) - mthofYr(dateFrom); month_correction = dayofmth(DateFrom) > dayofmth(DateTo) ? sign(DateFrom - DateTo) : 0; return ((years * 12) + month + month_correction; } |
|
Теги |
дата |
|
|