En tu funcion Dia, solamente necesitarías comprobar Bisiesto cuando el mes sea 2:
Código C:
Ver originalstatic 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,