buenos dias, hace mucho que no uso c pero por que no lo desglosas por partes
por ejemplo el primer filtro que tenes es el año este va desde 1900 a 2050 cosa que con un if lo solucionas.
por lo que veo, el mes tambien lo pones en numero o sea que con us switch se soluciona desde 1 a 12
y por ultimo te queda los dias
if ( anyo >= 1900 && anyo <=2500)
{
switch mes
case (aca pones en numero los meses de 31 dias)
if (dia >=1 && dia<=31)
case (aca los de 30)
case 2: "Febrero"
}
lamento no poder ayudarte mas, hace mucho que no programo, si esto lo pones en una funcion bool por ejemplo se entenderia mejor, saludos