Bienvenido(a), Visitante. Favor de ingresar o registrarse.

Ingresar con nombre de usuario, contraseña y duración de la sesión

Foros del Club

Páginas: [1]   Ir Abajo
  Enviar tema  |  Imprimir  
Autor Tema: Sumar o restar a fecha ingresada por teclado  (Leído 4351 veces)
0 Usuarios y 1 Visitante están viendo este tema.
Daniel316
Wizard
****

Prestigio: 0
Desconectado Desconectado

Profesión: Comerciante
Mensajes: 6



« en: 24/10/2007, 23:26:09 »

Hola a todos
No puedo lograr que una fecha ingresada por teclado
se le pueda efectuar las siguientes operaciones.-

Calendar hoy = Calendar.getInstance();
int masDias=20, masMeses=5, masAnos=1;
esto funciona.....:hoy.add(Calendar.DATE, masDias);
                                hoy.add(Calendar.MONTH, masMeses);
                                hoy.add(Calendar.YEAR, masAnos);
***********************************************
//"fechaAs" es una fecha "String" ingresada por teclado
Date fechaForm = formatea.parse(fechaAs);
esto no funciona: fechaForm.add(Calendar.DAY_OF_MONTH, 5);

El error debería estar en fechaForm pero........
************************************************
desde ya muchas gracias, es mi primer post
un gran abrazo
Daniel  Sonrisa
En línea
Sherekan
Moderador
Savant
*****

Prestigio: 8
Desconectado Desconectado

Sexo: Femenino
Mensajes: 30


Just Sherekan


WWW
Lenguajes:
PHP, Java, C/C++
XML, HTML/XHTML
Bases de datos:
MySQL
« Respuesta #1 en: 25/10/2007, 16:27:27 »

Hola!

La clase Date no tiene método add(). Por lo que te recomiendo que uses la clase Calendar.

Vas a tener que pasarle a un objeto Calendar, el objeto Date, así:

Código
Date fechaForm = formatea.parse(fechaAs);
Calendar c = Calendar.getInstance();
c.setTime(fechaForm);

Y ahora si podés usar add():

Código
c.add(Calendar.DAY_OF_MONTH, 5);

Saludos!
« Última modificación: 26/10/2007, 11:22:39 por Sherekan » En línea
Daniel316
Wizard
****

Prestigio: 0
Desconectado Desconectado

Profesión: Comerciante
Mensajes: 6



« Respuesta #2 en: 25/10/2007, 21:59:33 »

Hola a todos

Sherekan, muchas gracias por tú tiempo
lo tuyo funciono todo correcto solo le agregé
//fechaForm = aux.getTime();

Por el momento me falta solucionar lo siguiente
para continuar con el programa.-
---------------------------------------------------------- -
Ingreso por teclado:-30 //resta 30 días a la fecha
                                              // también ingresada por teclado
String ingdias = diasAgRe.readLine();
String signo_Dias = (ingdias.toString().trim());
String signoDias=signo_Dias.substring(0,1);
aux.add(Calendar.DAY_OF_MONTH,-numero);

lo que necesito es remplazar el signo menos ingresado
en este caso a mano, con la variable "signoDias", que es
un signo "-".-

algo así
aux.add(Calendar.DAY_OF_MONTH, signoDias numero);

un gran abrazo
Daniel Sonrisa
« Última modificación: 25/10/2007, 22:02:25 por Daniel316 » En línea
Sherekan
Moderador
Savant
*****

Prestigio: 8
Desconectado Desconectado

Sexo: Femenino
Mensajes: 30


Just Sherekan


WWW
Lenguajes:
PHP, Java, C/C++
XML, HTML/XHTML
Bases de datos:
MySQL
« Respuesta #3 en: 26/10/2007, 07:12:47 »

Tendrías que pasar el String pasado por teclado a int, (así te toma el signo también). Podés usar para eso el método estático parseInt() de la clase Integer, así:

Código
String ingdias = diasAgRe.readLine();
int numeroConSigno = Integer.parseInt(ingdias);
aux.add(Calendar.DAY_OF_MONTH, numeroConSigno); // y ahora si te lo toma

Saludos!
« Última modificación: 26/10/2007, 11:22:56 por Sherekan » En línea
Daniel316
Wizard
****

Prestigio: 0
Desconectado Desconectado

Profesión: Comerciante
Mensajes: 6



« Respuesta #4 en: 26/10/2007, 10:29:28 »

un saludo a todos
Hola Sherekan

Perdoname pero me sigue dando el error, la linea debería
quedar asi:"aux.add(Calendar.DATE,numeroConSigno numero);"
numeroConSigno es un int (es el signo menos)
numero también es un  int (es la cantidad de días a decrementar)

Me da el siguiente error "')' expected"

Te lo dejo en tus manos
un gran abrazo
Daniel Sonrisa
En línea
Sherekan
Moderador
Savant
*****

Prestigio: 8
Desconectado Desconectado

Sexo: Femenino
Mensajes: 30


Just Sherekan


WWW
Lenguajes:
PHP, Java, C/C++
XML, HTML/XHTML
Bases de datos:
MySQL
« Respuesta #5 en: 26/10/2007, 11:17:41 »

Hola Daniel!

La variable numeroConSigno contiene tanto el signo como el número.

Es decir, si ingresaste -30 por teclado. La variable numeroConSigno tiene el valor de -30. No hace falta que separes el número por un lado y el signo por otro.

O sea, tiene que quedar así:

Código
aux.add(Calendar.DATE,numeroConSigno); // olvidate de la variable numero
// sería como decirle: aux.add(Calendar.DATE,-30);

Saludos!
« Última modificación: 26/10/2007, 11:23:48 por Sherekan » En línea
Daniel316
Wizard
****

Prestigio: 0
Desconectado Desconectado

Profesión: Comerciante
Mensajes: 6



« Respuesta #6 en: 26/10/2007, 12:10:38 »

Hola Sherekan

Perdón por ser tan torpe, espero que sea solamente por los 3 meses
que llevo en el mundo java y ser un autodidacta.-
Me tendría que haber dado cuenta que el nombre de la variable
lo decía bien claro "numeroConSigno".-

Mil disculpas y muchas gracias, ahora si está todo correcto

un gran abrazo
Daniel Sonrisa
En línea
Sherekan
Moderador
Savant
*****

Prestigio: 8
Desconectado Desconectado

Sexo: Femenino
Mensajes: 30


Just Sherekan


WWW
Lenguajes:
PHP, Java, C/C++
XML, HTML/XHTML
Bases de datos:
MySQL
« Respuesta #7 en: 26/10/2007, 12:13:03 »

No hay problema Giñar

Suerte!
En línea
Foros del Club
   

 En línea
Páginas: [1]   Ir Arriba
  Enviar tema  |  Imprimir  
 
Ir a: