Autor
|
Tema: Comparar fechas. Ayuda! C++ (Leído 19,061 veces)
|
Wazzp
Desconectado
Mensajes: 34
We have seen the fall of the elite...
|
#include <iostream> using namespace std; int main() { int d,m,a; cout<<"Ingresa una fecha en formato DD-MM-AAAA"<<endl; cin>>d>>m>>a; cout<<"Ingresaste.."<<d<<"/"<<m<<"/"<<a<<endl; int D,M,A; cout<<"Ingresa una segunda fecha para comparar con la primera.."<<endl; cin>>D>>M>>A; cout<<"Ingresaste.."<<D<<"/"<<M<<"/"<<A<<endl; cout<<"Comparar?? 1=si y 2=no"<<endl; int t; cin>>t; Eleccion: switch(t) { case '1': goto calculo; break; case '2': goto rehacer; break; default: cout <<"Error,Reingresa los datos"<<endl; break; } calculo: { cout<<"Aki iria el algoritmo para la comparacion"<<endl; //El cual aun no se como hacer ^^^^^^^^^^^^^ } rehacer: { 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; cout<<"Comparar?? 1=si y 2=no"<<endl; goto Eleccion; } cin.ignore(); cin.get(); return 0; }
Estoy creando este programa que calcula el tiempo que paso entre 2 fechas.. necesito que me tiren alguna indirecta para el algoritmo del calculo.. y por favor,diganme si tengo algo mal en el codigo hasta ahora.. Creo que el switch lo tengo mal porque cada vez que pongo 1 por ejemplo,ejecuta el cout y luego vuelve al principio en lugar de terminar el programa.. gracias de antemano
|
|
« Última modificación: 25 Septiembre 2010, 22:38 pm por Littlehorse »
|
En línea
|
|
|
|
[L]ord [R]NA
Desconectado
Mensajes: 1.513
El Dictador y Verdugo de H-Sec
|
No entiendo siquiera que es lo que quieres, si te explicas bien creo que seria mejor, verifica tambien que el codigo que tengas sea compilable... Evita los GoTo, no estamos en Basic. para eso existen las funciones, los bucles y las sentencias condicionales.
|
|
|
En línea
|
|
|
|
Wazzp
Desconectado
Mensajes: 34
We have seen the fall of the elite...
|
Sinceramente,estaba leyendo uno de los libros que tengo y fue la unica manera en la que se me ocurrio.. La idea es comprar dos fechas diferentes y calcular la cantidad de dias que pasaron entre fecha1 y fecha2.. El codigo compila sin errores ni warnings asi que supongo que esta bien..
|
|
|
En línea
|
|
|
|
[L]ord [R]NA
Desconectado
Mensajes: 1.513
El Dictador y Verdugo de H-Sec
|
1) el codigo tiene un error cuando se introducen las fechas... verificalo. 2) El Switch tiene un error, siempre sale default porque solicitas un int y luego lo comparas con un char sin realizar la conversion... Mira la Tabla ASCII.
Compara primero los años, buscales la diferencia, despues los meses y despues los dias, entonces toma en consideracion la longitud del año con respecto a los meses y si el año es o no es bisiesto.
Un consejo: Si el libro que estas leyendo te recomienda GoTo inmediatamente deja de leerlo... te aseguro que quien escribio el libro a suerte debe de saber basic.
|
|
|
En línea
|
|
|
|
Wazzp
Desconectado
Mensajes: 34
We have seen the fall of the elite...
|
No es que lo recomienda.. en un momento aparece un ejemplo con el goto.. Pero no dice nada al respecto.. es como una mencion de que existe.. ahora me fijo y lo corrijo.. Gracias por la ayuda RNA EDIT: Revisando el Codigo,hice algunas modificaciones y el codigo compila y funciona bien.. Ahora mi problema es como reemplazar los goto.. Deberia usar void x () siendo x una funcion hecha por mi?? Si es asi aun no estoy seguro de como hacerlo, y si no es asi no tengo ni idea.. ayuda?
|
|
« Última modificación: 24 Septiembre 2010, 20:34 pm por Wazzp »
|
En línea
|
|
|
|
Littlehorse
All the world's a stage
Moderador
Desconectado
Mensajes: 2.714
Nie Dam Sie
|
EDIT: Revisando el Codigo,hice algunas modificaciones y el codigo compila y funciona bien.. Ahora mi problema es como reemplazar los goto.. Deberia usar void x () siendo x una funcion hecha por mi?? Si es asi aun no estoy seguro de como hacerlo, y si no es asi no tengo ni idea.. ayuda? Si, usar funciones seria lo ideal. Tal vez te sirva revisar este capitulo de conclase. Saludos
|
|
|
En línea
|
An expert is a man who has made all the mistakes which can be made, in a very narrow field.
|
|
|
Wazzp
Desconectado
Mensajes: 34
We have seen the fall of the elite...
|
#include <iostream> using namespace std; int d,m,a,D,M,A; int calculo(); int datos(); void eleccion(int t); int main() { int datos(); { 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; } int eleccion(int t); { cout<<"Comparar?? 1=si, 2=no y 3=salir"<<endl; int t; cin>>t; switch(t) { case 1: break; case 2: break; case 3: cout <<"Algun mensaje de salida.."<<endl; cin.get(); return 0; default: cout <<"Error,Reingresa los datos"<<endl; break; } } }
No se si voy bien pero por ahora tengo esto.. Alguien me podria decir si de lo de las funciones esta bien? si lo estan hago rapido el algoritmo para el calculo,relleno las funciones que me faltan y lo compilo a ver si funciona..
|
|
|
En línea
|
|
|
|
satu
Desconectado
Mensajes: 301
Siempre aprendiendo
|
Hola, la idea es esa pero no lo haces bien. Donde tienes definidas las funciones escribes su código y luego dentro del main solo tienes que llamar a la función: #include <iostream> using namespace std; void datos(int &d, int &m, int &a, int &D, int &M, int &A) //Los parametros son de salida (por referencia) { //Aqui el code, que en tu caso seria: 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) { //Esta funcion calcula el tiempo que ha pasado entre las 2 fechas y lo muestra //Aqui el code } int main() { int d, m, a, D, M, A, t; //Esto yo lo haria asi do{ datos(d, m, a, D, M, A); //Aqui ya se almecenan en las variables los valores cout<<"Comparar?? 1=si, 2=no y 3=salir"<<endl; cin>>t; switch(t) { case 1: //Llamas a la funcion calcular y listo calcular(d, m, a, D, M, A); break; case 2: //Por ejemplo pides que se vuelvan a introducir los datos cout<<"Vuelve a introducir los datos...."<<endl; break; case 3: cout <<"Algun mensaje de salida.."<<endl; cin.get(); return 0; default: cout <<"Error"<<endl; break; } }while(t!=3); return 0; }
|
|
|
En línea
|
Breakbeat como forma de vida
|
|
|
PiroskY
Desconectado
Mensajes: 76
пирожки
|
Che, pero por que primero no intentas hacer el codigo que compare dos fechas?
btw: Tenes que validar que las 2 fechas esten bien o se supone que van a ingresar fechas correctas?
|
|
|
En línea
|
|
|
|
satu
Desconectado
Mensajes: 301
Siempre aprendiendo
|
Hola
Eso lo tiene que hacer él, es su tarea.
Y claro que puede comprobar que las fechas estén bien, pero eso ya depende de él. De esta forma tienes que confiar en que la fecha introducida sea válida, pero así está bien, eso ya depende de cómo quiera hacerlo, mientras más comprobaciones "mejor" (nótense las comillas) pero si no se lo piden....
Saludos
|
|
|
En línea
|
Breakbeat como forma de vida
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
COMPARAR LOS DOS ARREGLOS!! AYUDA
Programación C/C++
|
JoseCheO
|
0
|
7,379
|
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,845
|
20 Julio 2013, 02:17 am
por Eleкtro
|
|
|
Ayuda con fechas en jTable
Java
|
ferla
|
0
|
1,754
|
24 Diciembre 2013, 19:15 pm
por ferla
|
|
|
Comparar Fechas
« 1 2 »
Desarrollo Web
|
Rodrigo Inzaurralde
|
11
|
5,602
|
16 Septiembre 2017, 23:00 pm
por engel lex
|
|
|
COMPARAR FECHAS
Programación C/C++
|
mateo26
|
4
|
2,590
|
31 Agosto 2019, 20:23 pm
por 98Fran
|
|