Jsp

9 respostas
L

Bom dia pessoal , estou iniciando em JSP, estou com duvidas a respeito de manipulação de datas, como faço para declarar uma variavel data em JSP e formatá-la.Preciso usar a biblioteca do java ? onde declaro atraves de scriplets, na verdade tudo aqui é scriplet.Obrigado

9 Respostas

B

Cara… você pode fazer assim:

<%

DateFomat format = new SimpleDateFormat(dd/MM/yyyy);

String suaData = format.format(new Date());

%>

Mas tem que importar as classes necessárias na sua JSP, colocando assim no cabeçalho da sua página:

<%@ page import=“java.text.,java.util.” %>

Obs: Creio que você deveria postar esta dúvida no fórum de Desenvolvimento Web, e não de Java Básico.

L

Vou seguir seu conselho, vou alterar o destino da minha pergunta, mas se possivel podemos terminar esse topico ?, tenho uma data no formato string e preciso formata-la para data para eu poder fazer uma subtração da data atual pela data informada pelo usuario.

Ex

26/10/2009 - 10/02/1998

11 anos a pessoa tem.

Preciso achar esta resposta.Obrigado

B
package seu.pacote;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;

import java.util.Date;


public class IdadeUtils {

    private Date dataAtual;
    private int idade;

    public IdadeUtils() {
        dataAtual = new Date(System.currentTimeMillis());
    }

    public int getIdade(String sDataUsuario) throws ParseException {
        DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
        Date dataUsuario = df.parse(sDataUsuario);
        idade = dataAtual.getYear() - dataUsuario.getYear();

        if (dataAtual.getMonth() < dataUsuario.getMonth()) {
            idade--;
        } else if (dataAtual.getMonth() == dataUsuario.getMonth()) {
            if (dataAtual.getDay() < dataUsuario.getDay()) {
                idade--;
            }
        }

        return idade;
    }
}

Crie esta classe, e, para executá-la em sua JSP, você deve utilizar o import
<%@ page import=“seu.pacote.*” %>

Então é só passar a data que o usuário informar na página para o método. O retorno será um inteiro e representará a idade do usuário.
É mais ou menos isso???

:wink:

juliofsn

lute, então o que você quer é o contrário, passar uma string para data, nesse caso você faria assim, usando o exemplo do biro:

<% DateFomat format = new SimpleDateFormat("dd/MM/yyyy"); Date suaData = (Date)format.parse('26/10/2009'); %>

L

Pessoal não tem um jeito mais simples ?Simplesmente fazer a subtração de duas datas, estou iniciando agora e estou com muitas duvidas.Obrigado

B

Subtrair datas não te dá simplesmente uma idade, te dá outra data que seria irrelevante no processo que você está criando. É necessário que você implemente o cálculo da idade a partir de uma data de nascimento e de um data atual.

Mas fala aí quais as suas dúvidas. Você deu uma olhada na classe IdadeUtils que eu postei? É lá que você não entendeu?

Abrs.

L

Blza Biro vamos lá, Como faço para criar um pacote e referencia-lo na pagina JSP, estou iniciando agora , por isso essas duvidas bobas.E como colocar na pratica esse codigo.Obrigado pela antenção Biro.

B

Ok… vamos por partes.

Por exemplo, você cria a classe IdadeUtils em um pacote chamado nome.pacote (que diz respeito à estrutura de diretórios dos seus códigos fontes - src/nome/pacote/IdadeUtils.java).

Na sua JSP, você terá um campo para o usuário digitar a data de nascimento dele(chamado dataUsuario, por exemplo). Quando você submeter sua página:
a) se você chamar uma servlet:

String dataUsuario = request.getParameter("dataUsuario");
  IdadeUtils idadeUtils = new IdadeUtils();
  int idade = idadeUtils.getIdade(dataUsuario);

b) se você chamar uma jsp:

<!-- Importanto o pacote para utilizar a classe IdadeUtils -->
<%@ page import="nome.pacote.*" %>
<html>
...
<%
  String dataUsuario = request.getParameter("dataUsuario");
  IdadeUtils idadeUtils = new IdadeUtils();
  int idade = idadeUtils.getIdade(dataUsuario);

  out.println("Idade: " + idade);//escreve na página
%>
...
</html>

Qualquer problema, estamos aí.
:wink:

L

Perfeito Biro, Muito Obrigado.Deu certinho

Criado 26 de outubro de 2009
Ultima resposta 26 de out. de 2009
Respostas 9
Participantes 3