Você está na página 1de 3

#include <cstdlib> #include <iostream> #include <stdio.

h> using namespace std; bool bisiesto(int); int fechaok(int,int,int); int diasacabames(int, int , int); int diasmesfecha(int, int , int); int diasincioanno(int, int , int); int diasfinalizarno(int, int , int); int main(int argc, char *argv[]) {int aa,mm,dd; printf("Fecha (dd/mm/aaaa) \n"); cout<<"DIAS: "; cin>>dd; cout<<"MESES: "; cin>>mm; cout<<"ANNOS: "; cin>>aa; if(fechaok(dd,mm,aa)!=0) { cout <<"Los dias q han transcurrido del anno son: "<<diasincioanno(dd,mm ,aa)<<endl; cout <<"Los dias q faltan para acabar el anno son: "<<diasfinalizarno(dd,mm ,aa)<<endl; } else cout<<"Error Fecha:"<<dd<<"/"<<"/"<<mm<<"/"<<aa<<endl; system("PAUSE"); return EXIT_SUCCESS; } bool bisiesto(int anno) { bool si= false; if(anno % 400 == 0 || (anno % 4 ==0 && anno % 100 != 0)) return si =true; else return si =false; } int fechaok(int dia,int mes,int anno) { int ok=false; switch(mes) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: if(dia>=1&&dia<=31) ok=true; break; case 4: case 6: case 9: case 11: if(dia>=1&&dia<=30) ok=true; break; case 2:

if(bisiesto(anno)==true) { if(dia>=1&&dia<=29) {ok=true; break;} } else { if(dia>=1&&dia<=28) {ok=true; break;} } } return(ok); } int diasacabames(int dia,int mes ,int anno) { if (fechaok (dia,mes,anno)) { switch(mes) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: return (31 - dia); break; case 4: case 6: case 9: case 11: return (30 - dia); break; case 2: if(bisiesto(anno)==true) return (29 - dia); else return (28 - dia); } } else cout<<"fecha incorrecta"; } int diasmesfecha ( int dia, int mes, int anno) { if (fechaok (dia,mes,anno)) { switch(mes) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: return 31; break; case 4: case 6: case 9: case 11: return 30; break; case 2: if(bisiesto(anno)==true) return 29; else return 28;

break; } } else cout<<"fecha incorrecta"; } int diasincioanno(int dia , int mes, int anno) { int acum=0; for (int i=1;i <= (mes-1);i++) acum=acum+diasmesfecha ( dia, i, anno); return (acum+dia); } int diasfinalizarno (int dia , int mes, int anno) { int acum=0; for (int i=(mes);i<=12;i++) acum=acum+diasmesfecha ( dia, i, anno); return (acum -dia); }

Você também pode gostar