DEFICIENCIAS :

La expresión :   if(ano<=1800 && ano>=2010)
debería ser :    if(ano<=1800 || ano>=2010)

  Ya que si no tu programa no funciona con años menores que 1800 o mayores que 2010.


CONSEJOS :

La expresión :

if(dia==1 ||dia==2 ||dia==3 ||dia==4 ||dia==5 ||dia==6 ||dia==7 ||dia==8 ||dia==9 ||dia==10 ||dia==11 ||dia==12 ||dia==13 ||dia==14 ||dia==15 ||dia==16 ||dia==17 ||dia==18 ||dia==19 ||dia==20 ||dia==21 ||dia==22 ||dia==23 ||dia==24 ||dia==25 ||dia==26 ||dia==27 ||dia==28 ||dia==29 ||dia==30 ||dia==31)

puede ser reemplazada por :

if (dia >= 1 && dia <= 31)

  En resumen tu programa lo sacaste como con 5 veces más de líneas que las que se nesecitaban.
  Si quieres ver más en detalle como reducir tu código me puedes preguntar cuando me veas.