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
| |||
| 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 |
| ||||
| 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/ |