Interesting question. Several options. For display, it should be possible to use a simple calculation plugin and subtract the birthday year from current year, current_time format="%Y"}
(e.g. 2013 - 1980 == 33). For this to work you probably need the fieldtype to be of the "date" kind for date-formatting to work on the field.
For searching by date, you'll probably need to write a custom query, or use the active record plugin. Because the standard search:field="needle" parameter only works as string. A custom plugin that queries the database is also an option. Fetch the ID's that meet the criteria and feed those to the channel:entries tag entry_id="13|42|147"