I am working with dates of birth of children before the mothers are diagnosed with a disease. In a wide format each consecutive birthdate are numberad parity1 to parityx. I use inrange to identify the number of births before the diagnosis

unab Pari: Parity*
local N: word count `Pari'
gen Parity_at_baseline=0
forv i=1/`N'{
replace Parity_at_baseline=Parity`i' if inrange(birthdate`i',0,dateofdiagnosis)==1
}

This does not work for dates before 1960. I think -1<0<1 is logically right but not according to inrange. dis inrange(-1,0,1) gives 0

How can I solve this.