06/02/2010, 17:29
|
| | Fecha de Ingreso: febrero-2010
Mensajes: 1
Antigüedad: 14 años, 10 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 ;) |