No dices en que parte no te funciona, así que empezaré por el principio.
¿Has probado a depurar el programa para ver que valores te devuelve args.Value?
Suponiendo que tiene el valor 'dd/mm/aaaa', ¿has tenido en cuenta que el usuario pueda introducir 1/7/2010 ó formateas el resultado para que siempre sea dos caracteres el dia, dos el mes y cuatro el año? Lo mejor realmente sería utilizar una función que te divida la cadena en tres partes teniendo en cuenta que están separadas por /, por ejemplo:
string cadena='01/02/2010';
string[] palabras
= cadena
.Split(new Char [] {' /''}); try{
int año = Int32.Parse(palabras[2]);
}catch(FormatException e)
{
Console.WriteLine("Error de conversión");
}
Otra cosa: no compruebes si alguién tiene una edad suponiendo el año actual, tienes que pensar que el año que viene será un año más y ya no te funcionaría el programa.
Si no es eso habría que mirar el código con más detenimiento a ver cual es el problema.