Foros del Web » Programación para mayores de 30 ;) » C/C++ »

FuncionSumar y restar fechas

Estas en el tema de FuncionSumar y restar fechas en el foro de C/C++ en Foros del Web. Buenas que tal a todos, es la primera vez q posteo aca compañeros y queria saber si alguien me podria explicar como es q hago ...
  #1 (permalink)  
Antiguo 04/05/2009, 09:55
 
Fecha de Ingreso: mayo-2009
Mensajes: 2
Antigüedad: 15 años
Puntos: 0
FuncionSumar y restar fechas

Buenas que tal a todos, es la primera vez q posteo aca compañeros y queria saber si alguien me podria explicar como es q hago un algoritmo para q a determinada fecha le sume o reste una cantidad N de dias.
desde ya muchas graciasss
  #2 (permalink)  
Antiguo 10/05/2009, 18:15
 
Fecha de Ingreso: mayo-2009
Mensajes: 3
Antigüedad: 15 años
Puntos: 0
Respuesta: FuncionSumar y restar fechas

Tengo la misma duda q el, la mia es en lenguaje c , si alguien me da una mano!muchas gracias!
  #3 (permalink)  
Antiguo 10/05/2009, 19:52
Avatar de hgp147  
Fecha de Ingreso: diciembre-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 980
Antigüedad: 17 años, 4 meses
Puntos: 36
Respuesta: FuncionSumar y restar fechas

Código:
#include<stdio.h>
#include<conio.h>
int anioBisiesto(int);
int cantDias(int,int);
int esFechaCorrecta(int, int, int);

int main(){
    
int anio, mes, dia, cant_dias, dias_rest, i, j;

printf("Ingrese fecha en formato dd/mm/yyyy: ");

scanf("%d/%d/%d", &dia, &mes, &anio);

printf("Ingrese cantidad de días para restar: ");

scanf("%d", &cant_dias);

j=dia;

for(i=1;i<=cant_dias;i++){
                          
if(j == 1){
                 
                 anio = (mes-1 < 1) ? anio-1 : anio;
                 mes = (mes-1 < 1) ? 12 : mes-1;
                 j= cantDias(mes, anioBisiesto(anio))+1;
                 
}

j--;

}





printf("%d/%d/%d", j, mes, anio);







getch();

}



int anioBisiesto(int anio){

if(anio % 4 == 0 && (anio % 100 !=0 || anio % 400 == 0))
         
return 1;
                
else

return 0;

}





int cantDias(int mes, int bisiesto){
    
int dias;

if(mes == 1 || mes == 3 || mes == 5 || mes == 7 || mes == 8 || mes == 10 || mes == 11){

dias = 31;      
       
}else{

if(mes == 2){
                      
dias = 28 + bisiesto;       
       
}else{

dias = 30;
      
}            
}

return dias;

}







int esFechaCorrecta(int dia, int mes, int anio){
    
int bisiesto, cant_Dias;

bisiesto = anioBisiesto(anio);

cant_Dias = cantDias(mes, bisiesto);
    
if(anio > 1900 && anio < 2009 && mes <= 12 && mes >= 1 && dia <= cant_Dias && dia >=1)

return 1;

else

return 0;
    
}
__________________
Spread Firefox | Download Day 2008
¡Únete en nuestra misión para alcanzar el Record Guinness al software más descargado en 24 horas! http://www.spreadfirefox.com/es-ES/worldrecord/
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:56.