This field comparator compares ages which can be given either as a
number (assumed to be an age in years) or as dates in three separate
fields `day`

, `month`

and `year`

. If these fields are
not a valid date, an error is triggered.

Dates are converted into ages relative to a fix date that can be set
with the argument `fix_date`

. If no fix date is set, ages are
calculated relative to the current system date (today). The
`fix_date`

argument can either be given as a date string, as a
date tuple (in the form `[day,month,year]`

) or as the string
`'today'`

.

The comparator allows for a certain percentage difference between two
ages. The argument `max_perc_diff`

can be used which sets the
maximum tolerated age difference in percentage. The value must be a
number between and . The default is , which means no
age difference is tolerated.

If the percentage difference between two ages is smaller than or equal
to the `max_perc_diff`

, a partial agreement weight is
calculated using the following formula.

where the percentage difference between the two ages is calculated as

If the percentage difference between the two ages is larger than the

`max_perc_diff`

the disagreement weight is returned.

`m_probability`

and `u_probability`

arguments can not be used, instead use
`m_probability_day`

`u_probability_day`

`m_probability_month`

`u_probability_month`

`m_probability_year`

`u_probability_year`

In its current version no frequency dependent weight calculation is
possible, thus the arguments `frequency_table`

,
`freq_table_max_weight`

and `freq_table_min_weight`

can not be used with this field comparator function.