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,216 veces)
Wazzp

Desconectado Desconectado

Mensajes: 34


We have seen the fall of the elite...


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

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 Desconectado

Mensajes: 76


пирожки


Ver Perfil
Re: No se que haceer! Ayuda! C++
« Respuesta #11 en: 25 Septiembre 2010, 17:07 pm »

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 Desconectado

Mensajes: 34


We have seen the fall of the elite...


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

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..
Código
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.    void datos(int &d,int &m,int &a,int &D,int &M,int &A)
  5.    {
  6.    cout<<"Ingresa una fecha en formato DD-MM-AAAA"<<endl;
  7.    cin>>d>>m>>a;
  8.    cout<<"Ingresaste.."<<d<<"/"<<m<<"/"<<a<<endl;
  9.  
  10.    cout<<"Ingresa una segunda fecha para comparar con la primera.."<<endl;
  11.    cin>>D>>M>>A;
  12.    cout<<"Ingresaste.."<<D<<"/"<<M<<"/"<<A<<endl;
  13.    }
  14.    void calculo(int d,int m,int a,int D,int M,int A,int m2,int a2,int r)
  15.     {
  16.        if (a>=A)
  17.        {
  18.            a2=a-A;
  19.        }
  20.  
  21.      if (a<=A)
  22.    {
  23.        a2=A-a;
  24.    }
  25.    if (m>=M)
  26.    {
  27.        m2=M-m;
  28.    }
  29.        else if (m<=M)
  30.        {
  31.           m2=M-m;
  32.        }
  33.    r=(a2*365)+(m2*30)+(D-d);
  34.    cout<<"El resultado seria: "<<r<<"dias.."<<endl;
  35.    }
  36.  
  37. int main()
  38. {
  39.   int d,m,a,D,M,A;
  40.   int a2=0,m2=0,r=0;
  41.   datos(d,m,a,D,M,A);
  42.   int t;
  43.   cout<< "Comparar..? 1=si 2=no-quiero cambiar las fechas 3=salir"
  44.   <<endl;
  45.   cin>>t;
  46.   do
  47.     {
  48.       switch(t)
  49.       {
  50.            case 1:
  51.            calculo(d,m,a,D,M,A,a2,m2,r);
  52.            return 0;
  53.            break;
  54.            case 2:
  55.            cout<<"Revisa las fechas.."<<endl;
  56.            datos(d,m,a,D,M,A);
  57.            calculo(d,m,a,D,M,A,a2,m2,r);
  58.            return 0;
  59.            break;
  60.            default:
  61.            return 0;
  62.            break;
  63.       }
  64.    }while(t!=3);
  65.  
  66. }

Ahh y disculpa satu pero use tu idea.. Una pregunta,es necesario ubicar los & dentro del void()??
En línea

PiroskY

Desconectado Desconectado

Mensajes: 76


пирожки


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

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 Desconectado

Mensajes: 34


We have seen the fall of the elite...


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

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  :rolleyes:
En línea

PiroskY

Desconectado Desconectado

Mensajes: 76


пирожки


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

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 Desconectado

Mensajes: 34


We have seen the fall of the elite...


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

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:

Código
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.    void datos(int &d,int &mcont,int &a,int &D,int &Mcont,int &A,int &t)
  5.    {
  6.    cout<<"Ingresa una fecha(DD/MM/AAAA. Debe ser la mas antigua!)"<<endl;
  7.    cin>>d>>mcont>>a;
  8.    cout<<"Ingresaste.."<<d<<"/"<<mcont<<"/"<<a<<endl;
  9.  
  10.    cout<<"Ingresa una segunda fecha. Debe ser la mas reciente."<<endl;
  11.    cin>>D>>Mcont>>A;
  12.    cout<<"Ingresaste.."<<D<<"/"<<Mcont<<"/"<<A<<endl;
  13.    cout<< "Comparar..? 1=si 2=no-quiero cambiar las fechas 3=salir"
  14.   <<endl;
  15.   cin>>t;
  16.    }
  17.  
  18.    void ABis(int a,int A,int m,int M)
  19.    {
  20.        if ( ( ( a % 4 == 0 ) && (a % 100 != 0 ) ) || ( (a % 400 ==0)))
  21.  
  22.            m=1;
  23.             else
  24.                m=2;
  25.  
  26.       if ( ( ( A % 4 == 0 ) &&( A % 100 != 0 ) ) || ( (A % 400 ==0) ) )
  27.  
  28.           M=1;
  29.            else
  30.                M=2;
  31.    }
  32.  
  33.    void meses(int m,int mb,int Mb,int M,int mcont,int Mcont)
  34.    {
  35.        if ((mcont==1)||(mcont==3)||(mcont==5)||(mcont==7)||(mcont==8)||(mcont==10)||(mcont==12))
  36.        {
  37.             mb=31;
  38.        }
  39.  
  40.            else if ((mcont==4)||(mcont==6)||(mcont==9)||(mcont==11))
  41.            {
  42.                mb=30;
  43.  
  44.        };
  45.    if ((Mcont==1)||(Mcont==3)||(Mcont==5)||(Mcont==7)||(Mcont==8)||(Mcont==10)||(Mcont==12))
  46.        {
  47.            Mb=31;
  48.        }
  49.        else if ((Mcont==4)||(Mcont==6)||(Mcont==9)||(Mcont==11))
  50.        {
  51.            Mb=30;
  52.        };
  53.    if ((m==1)&&(mcont==2))
  54.    {
  55.        mb=29;
  56.        }
  57.        else if((m==2)&&(mcont==2))
  58.        {
  59.            mb=28;
  60.        }
  61.  
  62.    }
  63.  
  64.    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)
  65.    //Calcularia la cantidad de dias hasta el fin del año
  66.    {
  67.       {
  68.         while (mcont<=12)
  69.         ABis(a,A,m,M);
  70.       meses(m,mb,Mb,M,mcont,Mcont);
  71.     X+=mb;
  72.     mcont++;
  73.     };
  74.     {
  75.          while (Mcont>=1)
  76.          ABis(a,A,m,M);
  77.       meses(m,mb,Mb,M,mcont,Mcont);
  78.     Y+=Mb;
  79.     Mcont--;
  80.     };
  81.     R=(X-Y);
  82.     cout<<"La respuesta seria: "<<R<<" Dias."<<endl;
  83.     }
  84.  
  85.   int main()
  86. {
  87.   int d,a,D,A,t,m,M;
  88.   int mb=0;int Mb=0;int mcont=0;
  89.   int X=0;int Mcont=0;
  90.   int Y=0;int mb1=0;
  91.   int R=0;
  92.   datos(d,mcont,a,D,Mcont,A,t);
  93.  
  94.   do
  95.     {
  96.       switch(t)
  97.       {
  98.            case 1:
  99.            calculo(d,m,a,X,mcont,mb,Mb,mb1,A,M,Mcont,R,Y);
  100.            break;
  101.  
  102.            case 2:
  103.            cout<<"Revisa las fechas.."<<endl;
  104.            calculo(d,m,a,X,mcont,mb,Mb,mb1,A,M,Mcont,R,Y);
  105.            return 0;
  106.            break;
  107.  
  108.            default:
  109.            return 0;
  110.            break;
  111.       }
  112.    }while(t!=3);
  113. return 0;
  114. }
  115.  
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

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,412 Ú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