10/05/2009, 19:52
|
| | | Fecha de Ingreso: diciembre-2006 Ubicación: Buenos Aires, Argentina
Mensajes: 980
Antigüedad: 18 años, 1 mes 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;
}
|