groff
Abril 2, 2009, 6:48am
#1
To com um exercicio aqui para fazer, mas parei nessa parte…
o exercicio e o seguinte…
tenho que criar um servlet aonde ele vai verificar se o login e a senha batem com o que está gravado em um arquivo txt.
Nesse arquivo txt contem um login, uma senha e uma data de nascimento.
após o login e a senha terem sido feitos, deve ser feito uma verificação…
Se for dia do aniversario da pessoa deve aparecer a Mensagem 1;
Se estiver faltando 10 dias para o aniversario da pessoa deve aparecer a Mensagem 2;
Se a senha ou o login for digitado errado deve aparecer a Mensagem 3;
e se for qualquer outro caso deve aparecer a Mensagem 4.
No caso de login ou senha incorreto eu consegui.
O meu problema é que eu não to conseguindo fazer a parte de verificação de data de aniversario e se faltam 10 dias.
Se alguem puder me ajudar ai eu agradeço…
abraços!!!
Podes fazer algo assim…
Ali fiz um parser, pois possuo a data apenas em String…então precisa converter para date…
try
{
SimpleDateFormat myForm = new SimpleDateFormat("dd/MM/yyyy");
String minhaDataEmString = "20/07/2009";
Date myDate = myForm.parse( minhaDataEmString );
String meuNascimento = "20/07/1989";
Date myDateNascimento = myForm.parse( meuNascimento );
Calendar calData = GregorianCalendar.getInstance();
calData.setTime( myDate );
Calendar calNascimento = GregorianCalendar.getInstance();
calNascimento.setTime( myDateNascimento );
if( calData.get( Calendar.MONTH ) == calNascimento.get( Calendar.MONTH ) )
{
if( calData.get( Calendar.DAY_OF_MONTH ) == calNascimento.get( Calendar.DAY_OF_MONTH ) )
{
System.out.println("Parabens !");
}
}
}
catch (ParseException e) {
e.printStackTrace();
}
}
o resto é com você
groff
Abril 2, 2009, 8:36am
#3
nossa…
vlw hitcurst…
consegui avança aqui no programa…
me ajudo muito esse código…
agora vou da uma pensada aqui pro caso de faltar 10 dias pro aniversario ter que aparecer outra mensagem…
vlw denovo…
groff
Abril 2, 2009, 9:43am
#4
meu…
to pensando aqui, mas não to conseguindo termina…
se não for pedir muito pra me ajudar denovo…
eu preciso que caso falte 10 dias ou menos para o aniversario da pessoa, mostre uma mensagem…
só que eu não to conseguindo coloca a lógica…
eu pensei em algo tipo assim…
if(dataAniver.get(Calendar.DATE) < dataAtual.get(Calendar.DATE) && dataAniver.get(Calendar.DATE) >= dataAtual.get(Calendar.DATE -10){
mensagem
}
mais nao to conseguindo…tentei um monte de coisa aqui e nada…
agradeço desde já ajuda!!!
abraços
groff
Abril 2, 2009, 10:50am
#5
me esforcei um poko mais aki e consegui…vou deixar o codigo pra quem quiser da uma olhada
[code]import javax.servlet.;
import javax.servlet.http. ;
import java.io .;
import java.text.SimpleDateFormat;
import java.util. ;
@SuppressWarnings (“serial”)
public class httpLogin extends HttpServlet{
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter output;
response.setContentType(“text/html”); //tipo do conteúdo
output = response.getWriter(); // obtém o fluxo de saída
output.println("<htlm><head><title>");
output.println("Trabalho Servlet");
output.println("</title></head> </body>");
output.println("</body></html>");
}
public void doPost (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//Pega login e senha
String login = request.getParameter("login");
String senha = request.getParameter("senha");
PrintWriter imprimir;
response.setContentType("text/html"); //tipo do conteudo
imprimir = response.getWriter(); // obtem o fluxo de saida
String linha;
java.io.BufferedReader buffer;
java.io.InputStream ins = null;
java.util.ArrayList <String> lista = new java.util.ArrayList <String>();
//Busca o arquivo txt
try{
ins = this.getClass().getClassLoader().getResourceAsStream("../resources/login.txt");
InputStreamReader insr = new InputStreamReader(ins);
buffer = new BufferedReader(insr);
do{
linha = buffer.readLine();
lista.add(linha);
} while (linha != null);
Iterator txt = lista.iterator();
if (txt.next().equals(login) && txt.next().equals(senha)) {
SimpleDateFormat tipodata = new SimpleDateFormat("dd/MM/yyyy");
String datatxt = (String) txt.next();
Date data = tipodata.parse(datatxt);
Calendar calDatatxt = GregorianCalendar.getInstance();
calDatatxt.setTime(data);
GregorianCalendar dataAtual = new GregorianCalendar();
dataAtual.add(Calendar.DATE,0);
if(calDatatxt.get(Calendar.DATE) == dataAtual.get(Calendar.DATE)){
imprimir.println ("<h2><p>Feliz Aniversário</p></h2>");
}else{
if(calDatatxt.get(Calendar.MONTH) <= dataAtual.get(Calendar.MONTH) || calDatatxt.get(Calendar.MONTH) > dataAtual.get(Calendar.MONTH)-2){
if(calDatatxt.get(Calendar.DAY_OF_YEAR)< dataAtual.get(Calendar.DAY_OF_YEAR) && calDatatxt.get(Calendar.DAY_OF_YEAR) >= dataAtual.get(Calendar.DAY_OF_YEAR)-10){
imprimir.println ("<h2><p>Seu aniversario esta próximo</p></h2>");
}else{
imprimir.println ("<h2><p>Bem-Vindo ao Sistema</p></h2>");
}
}else{
imprimir.println ("<h2><p>Bem-Vindo ao Sistema</p></h2>");
}
}
}else{
imprimir.println ("<h2><p>Dados incorretos</p></h2>");
}
} catch (Exception e) {
// TODO: handle exception
}
imprimir.println ("<p>Trabalho Servlet</p>");
imprimir.println ("</body></html>");
}
}[/code]
abraços