elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Comparar fechas. Ayuda! C++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Comparar fechas. Ayuda! C++  (Leído 19,217 veces)
Wazzp

Desconectado Desconectado

Mensajes: 34


We have seen the fall of the elite...


Ver Perfil
Comparar fechas. Ayuda! C++
« en: 23 Septiembre 2010, 23:57 pm »

Código
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main()
  6. {
  7.    int d,m,a;
  8.    cout<<"Ingresa una fecha en formato DD-MM-AAAA"<<endl;
  9.    cin>>d>>m>>a;
  10.    cout<<"Ingresaste.."<<d<<"/"<<m<<"/"<<a<<endl;
  11.    int D,M,A;
  12.    cout<<"Ingresa una segunda fecha para comparar con la primera.."<<endl;
  13.    cin>>D>>M>>A;
  14.    cout<<"Ingresaste.."<<D<<"/"<<M<<"/"<<A<<endl;
  15.    cout<<"Comparar?? 1=si y 2=no"<<endl;
  16.    int t;
  17.    cin>>t;
  18.  
  19.    Eleccion:
  20.    switch(t) {
  21.    case '1':
  22.    goto calculo;
  23.    break;
  24.    case '2':
  25.    goto rehacer;
  26.    break;
  27.    default:
  28.    cout <<"Error,Reingresa los datos"<<endl;
  29.    break;
  30.    }
  31.    calculo:
  32.    {
  33.            cout<<"Aki iria el algoritmo para la comparacion"<<endl;
  34.                //El cual aun no se como hacer ^^^^^^^^^^^^^
  35.    }
  36.  
  37.    rehacer:
  38.    {
  39.        cout<<"Ingresa una fecha en formato DD-MM-AAAA"<<endl;
  40.    cin>>d>>m>>a;
  41.    cout<<"Ingresaste.."<<d<<"/"<<m<<"/"<<a<<endl;
  42.    cout<<"Ingresa una segunda fecha para comparar con la primera.."<<endl;
  43.    cin>>D>>M>>A;
  44.    cout<<"Ingresaste.."<<D<<"/"<<M<<"/"<<A<<endl;
  45.    cout<<"Comparar?? 1=si y 2=no"<<endl;
  46.    goto Eleccion;
  47.    }
  48.    cin.ignore();
  49.    cin.get();
  50.    return 0;
  51. }
  52.  

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 Desconectado

Mensajes: 1.513

El Dictador y Verdugo de H-Sec


Ver Perfil WWW
Re: No se que haceer! Ayuda! C++
« Respuesta #1 en: 24 Septiembre 2010, 00:49 am »

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 Desconectado

Mensajes: 34


We have seen the fall of the elite...


Ver Perfil
Re: No se que haceer! Ayuda! C++
« Respuesta #2 en: 24 Septiembre 2010, 00:51 am »

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 Desconectado

Mensajes: 1.513

El Dictador y Verdugo de H-Sec


Ver Perfil WWW
Re: No se que haceer! Ayuda! C++
« Respuesta #3 en: 24 Septiembre 2010, 01:31 am »

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 Desconectado

Mensajes: 34


We have seen the fall of the elite...


Ver Perfil
Re: No se que haceer! Ayuda! C++
« Respuesta #4 en: 24 Septiembre 2010, 20:10 pm »

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  :D

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 Desconectado

Mensajes: 2.714


Nie Dam Sie


Ver Perfil WWW
Re: No se que haceer! Ayuda! C++
« Respuesta #5 en: 24 Septiembre 2010, 20:39 pm »

Citar
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 Desconectado

Mensajes: 34


We have seen the fall of the elite...


Ver Perfil
Re: No se que haceer! Ayuda! C++
« Respuesta #6 en: 24 Septiembre 2010, 21:51 pm »

Código
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int d,m,a,D,M,A;
  6.    int calculo();
  7.    int datos();
  8.    void eleccion(int t);
  9.  
  10. int main()
  11. {
  12.    int datos();
  13.    {
  14.        cout<<"Ingresa una fecha en formato DD-MM-AAAA"<<endl;
  15.    cin>>d>>m>>a;
  16.    cout<<"Ingresaste.."<<d<<"/"<<m<<"/"<<a<<endl;
  17.  
  18.    cout<<"Ingresa una segunda fecha para comparar con la primera.."<<endl;
  19.    cin>>D>>M>>A;
  20.    cout<<"Ingresaste.."<<D<<"/"<<M<<"/"<<A<<endl;
  21.    }
  22.  
  23.    int eleccion(int t);
  24.    {
  25.     cout<<"Comparar?? 1=si, 2=no y 3=salir"<<endl;
  26.       int t;
  27.    cin>>t;
  28.  
  29.        switch(t)
  30.        {
  31.        case 1:
  32.        break;
  33.  
  34.        case 2:
  35.        break;
  36.  
  37.        case 3:
  38.        cout <<"Algun mensaje de salida.."<<endl;
  39.        cin.get();
  40.        return 0;
  41.  
  42.        default:
  43.        cout <<"Error,Reingresa los datos"<<endl;
  44.        break;
  45.  
  46.        }
  47.    }
  48.  
  49.  
  50. }

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 Desconectado

Mensajes: 301

Siempre aprendiendo


Ver Perfil WWW
Re: No se que haceer! Ayuda! C++
« Respuesta #7 en: 25 Septiembre 2010, 12:25 pm »

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:
Código
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. void datos(int &d, int &m, int &a, int &D, int &M, int &A) //Los parametros son de salida (por referencia)
  6.    {
  7.    //Aqui el code, que en tu caso seria:
  8.    cout<<"Ingresa una fecha en formato DD-MM-AAAA"<<endl;
  9.    cin>>d>>m>>a;
  10.    cout<<"Ingresaste.."<<d<<"/"<<m<<"/"<<a<<endl;
  11.  
  12.    cout<<"Ingresa una segunda fecha para comparar con la primera.."<<endl;
  13.    cin>>D>>M>>A;
  14.    cout<<"Ingresaste.."<<D<<"/"<<M<<"/"<<A<<endl;
  15.    }
  16.  
  17.  
  18. void calculo(int d, int m, int a, int D, int M, int A)
  19.    {
  20.    //Esta funcion calcula el tiempo que ha pasado entre las 2 fechas y lo muestra
  21.    //Aqui el code
  22.    }
  23.  
  24.  
  25. int main()
  26. {
  27.    int d, m, a, D, M, A, t;
  28.  
  29.    //Esto yo lo haria asi
  30.    do{
  31.        datos(d, m, a, D, M, A); //Aqui ya se almecenan en las variables los valores
  32.        cout<<"Comparar?? 1=si, 2=no y 3=salir"<<endl;
  33.        cin>>t;
  34.  
  35.        switch(t)
  36.            {
  37.            case 1: //Llamas a la funcion calcular y listo
  38.            calcular(d, m, a, D, M, A);
  39.            break;
  40.  
  41.            case 2: //Por ejemplo pides que se vuelvan a introducir los datos
  42.            cout<<"Vuelve a introducir los datos...."<<endl;
  43.            break;
  44.  
  45.            case 3:
  46.            cout <<"Algun mensaje de salida.."<<endl;
  47.            cin.get();
  48.            return 0;
  49.  
  50.            default:
  51.            cout <<"Error"<<endl;
  52.            break;
  53.            }
  54.    }while(t!=3);
  55.  
  56. return 0;
  57. }

En línea

Breakbeat como forma de vida
PiroskY

Desconectado Desconectado

Mensajes: 76


пирожки


Ver Perfil
Re: No se que haceer! Ayuda! C++
« Respuesta #8 en: 25 Septiembre 2010, 15:13 pm »

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 Desconectado

Mensajes: 301

Siempre aprendiendo


Ver Perfil WWW
Re: No se que haceer! Ayuda! C++
« Respuesta #9 en: 25 Septiembre 2010, 16:38 pm »

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
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
COMPARAR LOS DOS ARREGLOS!! AYUDA
Programación C/C++
JoseCheO 0 7,413 Último mensaje 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 Último mensaje 20 Julio 2013, 02:17 am
por Eleкtro
Ayuda con fechas en jTable
Java
ferla 0 1,772 Último mensaje 24 Diciembre 2013, 19:15 pm
por ferla
Comparar Fechas « 1 2 »
Desarrollo Web
Rodrigo Inzaurralde 11 5,680 Último mensaje 16 Septiembre 2017, 23:00 pm
por engel lex
COMPARAR FECHAS
Programación C/C++
mateo26 4 2,641 Último mensaje 31 Agosto 2019, 20:23 pm
por 98Fran
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines