La Web del Programador: Comunidad de Programadores
 
    Pregunta:  7115 - CALCULO DE LA SEMANA DEL MES MEDIANTE LA FUNCION CALENDER
Autor:  Isabel Marzo Gascón
Estoy programando en Java, y me gustaría saber a partir de una fecha de tipo Timestamp, ya que la obtengo de una base de datos, como podría saber a que semana del mes corresponde.
He estado hojeando la clase calendar, y si que halla la semana del mes, pero solo se hacerlo de la fecha actual, obteniendo esta mediante 'getInstance()'.
¿Como puedo utilizar mi fecha de tipo Timestamp con los métodos de la clase java.util.Calendar?

Esto es lo que yo hago:

Timestamp mifecha=rs.getTimestamp("HORAFIN");//m es una variable de tipo Timestamp obtenida de la base de datos (access)

int c=mifecha.get(4);//mediante el metodo get obtengo el valor del campo WEEK_OF_MONTH, pero da el error de que no encuentra get en la clase java.sql.Timestamp

¿Porqué lo busca en ese paquete si le estoy importando java.util.Calender en la cabecera de mi Servlet?

Espero noticias, me haríais un gran favor si supierais como hacer esto...
Muchas gracias por todo
Un saludo.

  Respuesta:  José Carlos Cortizo
Hola:
El problema que tienes es que cuando haces mifecha.get(4), lo que haces es intentar acceder al procedimiento get del objeto mifecha, que es de tipo Timestamp. La mejor solución es que a partir del objeto mifecha, te construyas otro de tipo GregorianCalendar y del objeto creado hagas un get(DAY_OF_WEEK). Yo que tu, me lo crearía diréctamente a partir de los datos de la base de datos olvidándome del TimeStamp que hereda de Date y está prácticamente Deprecated. Si tienes problemas con las clases de Java, consulta en el API las clases GregorianCalendar, Calendar, Date y Timestamp.

Suerte.