Autor
|
Tema: Comparar fechas. Ayuda! C++ (Leído 19,216 veces)
|
Wazzp
Desconectado
Mensajes: 34
We have seen the fall of the elite...
|
Eso de la comprobacion de la voy a agregar mas adelante.. primero quiero lo basico y se lo mando a mi amiga que me lo pidio.. y ahi le pregunto si quiere esa comprobacion,si me dice que no,el programa esta bien,si las kiere,solamente tengo que agregarlas y listo! Gracias por la ayuda
|
|
|
En línea
|
|
|
|
PiroskY
Desconectado
Mensajes: 76
пирожки
|
jaja a wazzap le decia que lo haga Porque hizo toda una estructura todo ordenadito, pero primero que nada yo haria el programa funcional, y despues le doy mejor formato
Intenta hacer el codigo que compare las 2 fechas y decinos que tal te fue
|
|
|
En línea
|
|
|
|
Wazzp
Desconectado
Mensajes: 34
We have seen the fall of the elite...
|
Ok.. les voy a ser 100% Sincero.. No tengo NI IDEA de que hice XD Solo se que compila y funciona bien.. pero no creo que el algoritmo para las fechas este bien.. Alguien corrige? porque ya lo revise como 20 veces y no se cual podria ser un error.. #include <iostream> using namespace std; void datos(int &d,int &m,int &a,int &D,int &M,int &A) { cout<<"Ingresa una fecha en formato DD-MM-AAAA"<<endl; cin>>d>>m>>a; cout<<"Ingresaste.."<<d<<"/"<<m<<"/"<<a<<endl; cout<<"Ingresa una segunda fecha para comparar con la primera.."<<endl; cin>>D>>M>>A; cout<<"Ingresaste.."<<D<<"/"<<M<<"/"<<A<<endl; } void calculo(int d,int m,int a,int D,int M,int A,int m2,int a2,int r) { if (a>=A) { a2=a-A; } if (a<=A) { a2=A-a; } if (m>=M) { m2=M-m; } else if (m<=M) { m2=M-m; } r=(a2*365)+(m2*30)+(D-d); cout<<"El resultado seria: "<<r<<"dias.."<<endl; } int main() { int d,m,a,D,M,A; int a2=0,m2=0,r=0; datos(d,m,a,D,M,A); int t; cout<< "Comparar..? 1=si 2=no-quiero cambiar las fechas 3=salir" <<endl; cin>>t; do { switch(t) { case 1: calculo(d,m,a,D,M,A,a2,m2,r); return 0; break; case 2: cout<<"Revisa las fechas.."<<endl; datos(d,m,a,D,M,A); calculo(d,m,a,D,M,A,a2,m2,r); return 0; break; default: return 0; break; } }while(t!=3); }
Ahh y disculpa satu pero use tu idea.. Una pregunta,es necesario ubicar los & dentro del void()??
|
|
|
En línea
|
|
|
|
PiroskY
Desconectado
Mensajes: 76
пирожки
|
Pero los meses no tienen todo 30 dias
Vos lo que queres hacer es algo simplesito que calcule aproximadamente, o tiene que ser exacto? Porque tampoco estas teniendo en consideracion años bisiestos
Mira, yo empece hace poquito a programar, y lo que haria es lo siguiente: dividi el calculo en 3 etapas Primero calcular cuantos dias faltan hasta el fin de año de la primer fecha despues culcular cuantos años hay entre las 2 fechas y por ultimo cuantos dias pasaron del ultimo año
Esto te funcionaria solo para fechas en las que los años no son el mismo pero el otro caso lo haces a parte y listo
No se si estoy ayudando demasiado, que alguien me diga si es el caso, soy nuevo en el foro
|
|
« Última modificación: 25 Septiembre 2010, 19:08 pm por PiroskY »
|
En línea
|
|
|
|
Wazzp
Desconectado
Mensajes: 34
We have seen the fall of the elite...
|
Aclaro por las dudas: El programa es para una amiga,en ningun caso debe ser 100% Exacto. Ya le pregunte el tema de la exactitud del programa y me dijo que no hacia falta.. Si en algun momento me pide que lo haga mas exacto usaria un par de Ifs mas para los meses que tengan 30/31/28/29 dias y los años bisiestos Igual,Ayudes demasiado o no,quiero darte las gracias Todo esto me ayuda mas que a realizar el ejercicio(Que sinceramente no tiene tanta importancia) Me ayuda a pensar como programador,y creo que eso no se puede aprender de ningun lado, Solo tu interes y tus ganas de ser un programador pueden servir -Solo mi opinion- Saludos del Wazzp
|
|
|
En línea
|
|
|
|
PiroskY
Desconectado
Mensajes: 76
пирожки
|
bueno, si no tiene que ser exacto esta bien
Te diria que intentes volver a hacerlo siguiendo los tips de las 3 etapas Y si no va a ser tan exacto, tampoco te gastes en fijarte cual es la fecha anterior a la otra Que en la primer variable se ingrese la fecha mas antigua y en la segunda la mas actual
|
|
|
En línea
|
|
|
|
Wazzp
Desconectado
Mensajes: 34
We have seen the fall of the elite...
|
Hmmm... Wow.. Se me acaba de ocurrir una muy buena idea o.o!!! Tu comment fue disparador! Graciaas!! Cuando termine el code lo posteo por si a alguien le interesa usarlo (Voy a ponerle lo de los años bisiestos y los meses antes de postearlo asi es 99.99% Exacto) EDIT: #include <iostream> using namespace std; void datos(int &d,int &mcont,int &a,int &D,int &Mcont,int &A,int &t) { cout<<"Ingresa una fecha(DD/MM/AAAA. Debe ser la mas antigua!)"<<endl; cin>>d>>mcont>>a; cout<<"Ingresaste.."<<d<<"/"<<mcont<<"/"<<a<<endl; cout<<"Ingresa una segunda fecha. Debe ser la mas reciente."<<endl; cin>>D>>Mcont>>A; cout<<"Ingresaste.."<<D<<"/"<<Mcont<<"/"<<A<<endl; cout<< "Comparar..? 1=si 2=no-quiero cambiar las fechas 3=salir" <<endl; cin>>t; } void ABis(int a,int A,int m,int M) { if ( ( ( a % 4 == 0 ) && (a % 100 != 0 ) ) || ( (a % 400 ==0))) m=1; else m=2; if ( ( ( A % 4 == 0 ) &&( A % 100 != 0 ) ) || ( (A % 400 ==0) ) ) M=1; else M=2; } void meses(int m,int mb,int Mb,int M,int mcont,int Mcont) { if ((mcont==1)||(mcont==3)||(mcont==5)||(mcont==7)||(mcont==8)||(mcont==10)||(mcont==12)) { mb=31; } else if ((mcont==4)||(mcont==6)||(mcont==9)||(mcont==11)) { mb=30; }; if ((Mcont==1)||(Mcont==3)||(Mcont==5)||(Mcont==7)||(Mcont==8)||(Mcont==10)||(Mcont==12)) { Mb=31; } else if ((Mcont==4)||(Mcont==6)||(Mcont==9)||(Mcont==11)) { Mb=30; }; if ((m==1)&&(mcont==2)) { mb=29; } else if((m==2)&&(mcont==2)) { mb=28; } } void calculo(int d,int m,int a,int X,int mcont,int mb,int Mb,int mb1,int A,int M,int Mcont,int R,int Y) //Calcularia la cantidad de dias hasta el fin del año { { while (mcont<=12) ABis(a,A,m,M); meses(m,mb,Mb,M,mcont,Mcont); X+=mb; mcont++; }; { while (Mcont>=1) ABis(a,A,m,M); meses(m,mb,Mb,M,mcont,Mcont); Y+=Mb; Mcont--; }; R=(X-Y); cout<<"La respuesta seria: "<<R<<" Dias."<<endl; } int main() { int d,a,D,A,t,m,M; int mb=0;int Mb=0;int mcont=0; int X=0;int Mcont=0; int Y=0;int mb1=0; int R=0; datos(d,mcont,a,D,Mcont,A,t); do { switch(t) { case 1: calculo(d,m,a,X,mcont,mb,Mb,mb1,A,M,Mcont,R,Y); break; case 2: cout<<"Revisa las fechas.."<<endl; calculo(d,m,a,X,mcont,mb,Mb,mb1,A,M,Mcont,R,Y); return 0; break; default: return 0; break; } }while(t!=3); return 0; }
Por que se cuelga en lugar de empezar cuando pongo introduzco Comparar en switch?
|
|
« Última modificación: 26 Septiembre 2010, 00:09 am por Wazzp »
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
COMPARAR LOS DOS ARREGLOS!! AYUDA
Programación C/C++
|
JoseCheO
|
0
|
7,412
|
10 Noviembre 2011, 03:29 am
por JoseCheO
|
|
|
[AYUDA] VB.NET BUSCAR EN UN DIRECTORIO Y COMPARAR EL CHEKSUM MD5
.NET (C#, VB.NET, ASP)
|
DragonsWP
|
1
|
3,877
|
20 Julio 2013, 02:17 am
por Eleкtro
|
|
|
Ayuda con fechas en jTable
Java
|
ferla
|
0
|
1,772
|
24 Diciembre 2013, 19:15 pm
por ferla
|
|
|
Comparar Fechas
« 1 2 »
Desarrollo Web
|
Rodrigo Inzaurralde
|
11
|
5,680
|
16 Septiembre 2017, 23:00 pm
por engel lex
|
|
|
COMPARAR FECHAS
Programación C/C++
|
mateo26
|
4
|
2,641
|
31 Agosto 2019, 20:23 pm
por 98Fran
|
|