En tu funcion Dia, solamente necesitarías comprobar Bisiesto cuando el mes sea 2:
    
Código C:
Ver original- static int Dia (int mes, int year) 
- { 
-     if ((mes < 1) || (mes > 12))    // Comprueba primero que el mes es válido 
-         return 0; 
-     if ( (mes == 1) etc) 
-         return 31; 
-     // Aqui no necesitarias un else, si llega aqui es que no es un mes de 31 dias 
-     if ( (mes == 4) etc) 
-         return 30; 
-     // Aqui tampoco necesitarias un else, si llega aqui es febrero y comprobamos si es bisiesto 
-     if (Bisiesto(year)) 
-         return 29; 
-     else 
-         return 28; 
- } 
Desde luego, lo más adecuado sería una sentencia switch (míratela y prueba). 
Saludos,