Programación General > C/C++
fecha del dia anterior
punteroNULO:
--- Cita de: "m0skit0" ---Estás presuponiendo que usa Windows
--- Fin de la cita ---
Utilizando dev-c++, es más que probable.
emab84io:
Si, es windows
pero amigos podrian ser mas especificos en que condiciones tengo que cambiar para obtener el resultado que quiero
punteroNULO:
Como dije anteriormente tienes que cambiar todo el código. Pondré un trozo para empezar.
--- Código: C ---if (dia < 1) // no es el día primero{ dia--;}else // día primero{ // tenemos que calcular el último día del mes anterior y restar un mes a la fecha // en el caso de que estemos en enero también hay que restar un año}
emab84io:
Seria asi. verifiquen por favor
La fecha de entrega esta proxima
punteroNULO:
primer error:
--- Código: C ---if (dia>d) por la condicion anterior a esta es evidente que nuca se cumplirá (si es monor o igual a "d" no puede se mayor).
Lo correcto sería comprobar si es mayor de 1.
--- Código: C ---if (dia>1)
Cuando es día 1 y estamos en enero el día anterior será el 31 de diciembre del año anterior.
--- Código: C ---if (mes==1) { dia=31; mes=12; anio--; }
finalmente en otro caso restamos un mes y calculamos el último día de ese mes.
--- Código: C ---else { mes--; switch (mes) { case 4: case 6: case 9: case 11: dia=30; break; case 2: if (bisiesto(anio)) dia=29; else dia=28; break; default: dia=31; } }
todo junto:
--- Código: C ---if (dia<=d){ if (dia>1) dia--; else { //dia=1; if (mes==1) { dia=31; mes=12; anio--; } else { mes--; switch (mes) { case 4: case 6: case 9: case 11: dia=30; break; case 2: if (bisiesto(anio)) dia=29; else dia=28; break; default: dia=31; } } } printf("nEl dia anterior sera:%2d-%2d-%d.",dia,mes,anio); return TRUE;}else return FALSE;
Navegación
[#] Página Siguiente
[*] Página Anterior
Ir a la versión completa