Ver Mensaje Individual
  #6 (permalink)  
Antiguo 06/02/2010, 17:29
Diogorh
 
Fecha de Ingreso: febrero-2010
Mensajes: 1
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Sumar dias a una Fecha

Yo se que fue hace mucho pero estaba buscando por ese mismo codigo y no lo encuentre...asi q despues de mas de 2 horas lo hice...gracias al codigo de "punk_not_dead" que estaba muy bien hecho..




Código:
#include<stdio.h>
#pragma warning(disable:4996)
    int main(){
       int any, mes, dia, bis, agrega;//Declaracion de variables
	   int newMes, newDia, newYear=0, jan, fev, mar, abr, mai, jun, jul, ago, set, out, nov, dez;
       printf("\nIngrese ano:");
       scanf("%d",&any);
       if((any%4==0)||(any%400==0)&&(any%100!=0)){//Validar si es bisiesto
          bis=1;
       }else{
          bis=0;
       }
       printf("\nIngrese mes:");
       scanf("%d",&mes);
       while(mes>12 || mes<1){//Valida que el mes no sea mas que 13
          printf("\nIngrese mes correcto:");
          scanf("%d",&mes);
       }
       printf("\nIngrese dia:");
       scanf("%d",&dia);
          if(bis==1 && mes==2){//valida dias en febrero bisisesto
             while(dia>29){
                printf("Ingrese dia correcto, febrero bisisesto tiene hasta 29 dias");
                scanf("%d",&dia);
             }
          }
          if(bis==0 && mes==2){//Valida dias en febrero no bisiesto
             while(dia>28){
                printf("Ingrse dia correcto, febrero tiene solo 28 dias");
                scanf("%d",&dia);
             }
          }
       printf("\n\nUsted a ingresado el dia %d del mes %d del anio %d",dia, mes, any);
       printf("\n\nIngrese la cantidad de días a sumar:"); 
	   scanf("%d",&agrega);//cantidad de dias a sumar

	   newMes = mes;
	   newYear = any;

	   while(agrega>0){
		 if(mes==1){
			 for(jan=dia+1; jan<32; jan++){
				 if(agrega>0){
					agrega--;
					newDia = jan;				
				}
			}
			 if(agrega>0)
				newMes=2;
		 }
		  if(newMes==1){
			 for(jan=1; jan<32; jan++){
				if(agrega>0){
					agrega--;
					newDia = jan;	
				}
			}
			if(agrega>0)
				newMes=2;
		 }
		  if(mes == 2 && bis==1){
			for(fev=dia+1; fev<30; fev++){
				if(agrega>0){
					agrega--;
					newDia = fev;	
				}
			}
			if(agrega>0)
				newMes=3;
		 }
		   if(mes == 2 && bis==0){
			for(fev=dia+1; fev<29; fev++){
				if(agrega>0){
					agrega--;
					newDia = fev;	
				}
			}
			if(agrega>0)
				newMes=3;
		 }
		  if(newMes == 2 && bis==1){
			for(fev=1; fev<30; fev++){
				if(agrega>0){
					agrega--;
					newDia = fev;	
				}
			}
			if(agrega>0)
				newMes=3;
		 }
		  if(newMes == 2 && bis==0){
			for(fev=1; fev<29; fev++){
				if(agrega>0){
					agrega--;
					newDia = fev;	
				}
			}
			if(agrega>0)
				newMes=3;
		 }
		  if(mes==3){
			 for(mar=dia+1; mar<32; mar++){
				if(agrega>=0){
					agrega--;
					newDia = mar;	
				}
			}
			if(agrega>=0)
				newMes=4;
		 }
		  if(newMes==3){
			 for(mar=1; mar<32; mar++){
				if(agrega>=0){
					agrega--;
					newDia = mar;	
				}
			}
			if(agrega>=0)
				newMes=4;
		 }
		  if(mes==4){
			 for(abr=dia+1; abr<30; abr++){
				if(agrega>=0){
					agrega--;
					newDia = abr;	
				}
			}
			if(agrega>=0)
				newMes=5;
		 }
		  if(newMes==4){
			 for(abr=1; abr<30; abr++){
				if(agrega>=0){
					agrega--;
					newDia = abr;	
				}
			}
			if(agrega>=0)
				newMes=5;
		 }
		  if(mes==5){
			 for(mai=dia+1; mai<32; mai++){
				if(agrega>=0){
					agrega--;
					newDia = mai;	
				}
			}
			if(agrega>=0)
				newMes=6;
		 }
		  if(newMes==5){
			 for(mai=1; mai<32; mai++){
				if(agrega>=0){
					agrega--;
					newDia = mai;	
				}
			}
			if(agrega>=0)
				newMes=6;
		 }
		  if(mes==6){
			 for(jun=dia+1; jun<31; jun++){
				if(agrega>=0){
					agrega--;
					newDia = jun;	
				}
			}
			if(agrega>=0)
				newMes=7;
		 }
		  if(newMes==6){
			 for(jun=1; jun<31; jun++){
				if(agrega>=0){
					agrega--;
					newDia = jun;	
				}
			}
			if(agrega>=0)
				newMes=7;
		 }
		  if(mes==7){
			 for(jul=dia+1; jul<32; jul++){
				if(agrega>=0){
					agrega--;
					newDia = jul;	
				}
			}
			if(agrega>=0)
				newMes=8;
		 }
		  if(newMes==7){
			 for(jul=1; jul<32; jul++){
				if(agrega>=0){
					agrega--;
					newDia = jul;	
				}
			}
			if(agrega>=0)
				newMes=8;
		 }
		  if(mes==8){
			 for(ago=dia+1; ago<32; ago++){
				if(agrega>=0){
					agrega--;
					newDia = ago;	
				}
			}
			if(agrega>=0)
				newMes=9;
		 }
		  if(newMes==8){
			 for(ago=1; ago<32; ago++){
				if(agrega>=0){
					agrega--;
					newDia = ago;	
				}
			}
			if(agrega>=0)
				newMes=9;
		 }
		  if(mes==9){
			 for(set=dia+1; set<31; set++){
				if(agrega>=0){
					agrega--;
					newDia = set;	
				}
			}
			if(agrega>=0)
				newMes=10;
		 }
		  if(newMes==9){
			 for(set=1; set<31; set++){
				if(agrega>=0){
					agrega--;
					newDia = set;	
				}
			}
			if(agrega>=0)
				newMes=10;
		 }
		  if(mes==10){
			 for(out=dia+1; out<32; out++){
				if(agrega>=0){
					agrega--;
					newDia = out;	
				}
			}
			if(agrega>=0)
				newMes=11;
		 }
		  if(newMes==10){
			 for(out=1; out<32; out++){
				if(agrega>=0){
					agrega--;
					newDia = out;	
				}
			}
			if(agrega>=0)
				newMes=11;
		 }
		  if(mes==11){
			 for(nov=dia+1; nov<31; nov++){
				if(agrega>=0){
					agrega--;
					newDia = nov;	
				}
			}
			if(agrega>=0)
				newMes=12;
		 }
		  if(newMes==11){
			 for(nov=1; nov<30; nov++){
				if(agrega>=0){
					agrega--;
					newDia = nov;	
				}
			}
			if(agrega>=0)
				newMes=12;
		 }
		  if(mes==12){
			 for(dez=dia+1; dez<32; dez++){
				if(agrega>0){
					agrega--;
					newDia = dez;	
				}
			}
			 if(agrega>0 && newMes==12){
				newMes=1;
				newYear= newYear + 1;
					if((newYear%4==0)||(newYear%400==0)&&(newYear%100!=0)){//Validar si es bisiesto
						bis=1;
					}else{
						bis=0;
					}
			}
		 }
		  if(newMes==12){
			 for(dez=1; dez<32; dez++){
				if(agrega>0){
					agrega--;
					newDia = dez;	
				}
			}
			 if(agrega>0 && newMes==12){
				newMes=1;
				newYear= newYear + 1;
					if((newYear%4==0)||(newYear%400==0)&&(newYear%100!=0)){//Validar si es bisiesto
						bis=1;
					}else{
						bis=0;
					}
			}
		 }
	}

	 printf("\n\n La nueva fecha es dia %d del mes %d del anio %d\n",newDia, newMes, newYear);

	return 0;
}

Creo que no hay errores y espero q sea util a alguien....seguramente hay maneras mas sencillas de hacerlo pero es para la facu y no podia usar otros comandos.

No esta comentado pero si alguien no entiende algo avisame ;)