Galera… tenho um objeto do tipo Date.
Gostaria de saber como faço pra setar este objeto para o primeiro ou último dia do mês.
Ex:
08/04/2005 tem que se transformar em 30/04/2005
08/04/2005 tem que se transformar em 01/04/2005
Galera… tenho um objeto do tipo Date.
Gostaria de saber como faço pra setar este objeto para o primeiro ou último dia do mês.
Ex:
08/04/2005 tem que se transformar em 30/04/2005
08/04/2005 tem que se transformar em 01/04/2005
Use a classe GregorianCalendar:
import java.util.*;
...
// Meses vao de 0 a 11.. Logo, abril eh 3
Calendar c = new GregorianCalendar(2004, 3, 8);
System.out.println("Primeiro dia do mes: " + c.getMinimum(DAY_OF_MONTH));
System.out.println("Ultimo dia do mes: " + c.getMaxium(DAY_OF_MONTH));
Para a relacao completa de valores possiveis e metodos, veja o javadoc:
http://java.sun.com/j2se/1.4.2/docs/api/java/util/GregorianCalendar.html
http://java.sun.com/j2se/1.4.2/docs/api/java/util/Calendar.html
Rafael
Demorei mais achei…
[code]import java.util.*;
Calendar cal = new GregorianCalendar(2005, 3, 8);
cal.getMinimum(DAY_OF_MONTH); //Retorna o primeiro dia
cal.getMaximum(DAY_OF_MONTH)); //Retorna o último dia[/code]
Lembre-se que os meses começam pelo 0, entaum Janeiro = 0… Abril = 3…Dezembro = 11
flw cara.
[quote=Rafael Steil]Use a classe GregorianCalendar:
import java.util.*;
...
// Meses vao de 0 a 11.. Logo, abril eh 3
Calendar c = new GregorianCalendar(2004, 3, 8);
System.out.println("Primeiro dia do mes: " + c.getMinimum(DAY_OF_MONTH));
System.out.println("Ultimo dia do mes: " + c.getMaxium(DAY_OF_MONTH));
Para a relacao completa de valores possiveis e metodos, veja o javadoc:
http://java.sun.com/j2se/1.4.2/docs/api/java/util/GregorianCalendar.html
http://java.sun.com/j2se/1.4.2/docs/api/java/util/Calendar.html
Rafael[/quote]
[color=blue]Tá dando “pau” … sou novato em java [/color]
tah errado um ali
tah assim c.getMaxium é assim c.getMaximum
System.out.println("Ultimo dia do mes: " + c.getMaximum(DAY_OF_MONTH));
[quote=israelwm]tah errado um ali
tah assim c.getMaxium é assim c.getMaximum
System.out.println("Ultimo dia do mes: " + c.getMaximum(DAY_OF_MONTH));
[/quote]
Também dá pau… eu já tinha notado este erro…
eu sou novato em java, mas né assim naum:
c.getMaxium(GregorianCalendar.DAY_OF_MONTH);
Mas desse jeito de cima também da erro… NÃO SEI MAIS O Q FAÇO
coloca todo teu código aki.
Pessoal, fiz assim, para o exemplo do mês atual ser fevereiro:
Calendar cal = new GregorianCalendar();
Date agora;
cal.setTime(agora);
out.print(cal.getMinimum(GregorianCalendar.DAY_OF_MONTH)); // Retorna 1 - Tá correto
out.print(cal.getMaximum(GregorianCalendar.DAY_OF_MONTH)); // retorna 31 - Tá errado, pois fevereiro tem q retornar 28
O setTime() ta errado. Vc tem que iniciar a instancia “agora”, senao nenhuma data eh setada. De qualquer maneira
Date agora = new Date()
vai retornar a data atual. Para forcar o mes para fevereiro, passe a data no construtor, como mostrado nos exemplos:
// Inicia o calendario para 3/02/2005
Calendar cal = new GregorianCalendar(2005, 1, 3);
Rafael
Galera… desculpa incomodar vcs aew, mas meu código completa segue abaixo e continua errado. Se fosse em delphi, eu fazia isso em um piscar de olhos… …
DataHoraBoleto teste = new DataHoraBoleto();
Calendar cal = new GregorianCalendar(2005, 1, 3);
Date agora = new Date();
out.print(cal.getMinimum(GregorianCalendar.DAY_OF_MONTH)); // Saí 1 - Tá correto
out.print(cal.getMaximum(GregorianCalendar.DAY_OF_MONTH)); // Saí 31 - Tá errado. era pra sair 28
:arrow: E agora?
eu acho q vc ta esquecendo de importar a classe…
logo no inicio do seu arquivo coloque:
import java.util.*;
c vc n colocar isso n vai funciona nunca, v c eh isso ai
Cara, os exemplos estao errados. Voce tem que usar na verdade o getActualMinimum() e getActualMaximum(). O teu codigo fica assim:
Calendar cal = new GregorianCalendar(2005, 1, 3);
out.print(cal.getActualMinimum(Calendar.DAY_OF_MONTH));
out.print(cal.getActualMaximum(Calendar.DAY_OF_MONTH));
Rafael
Tenta isso, com certeza vai funcionar …
/**
* @return último dia do mês atual
*/
public int ultimoDiaMesAtual(){
GregorianCalendar cal = new GregorianCalendar();
cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH));
int ultimoDia = cal.get(Calendar.DAY_OF_MONTH);
return ultimoDia;
}
[color=blue] [/color]
se vc quer pegar o primeiro e o ultimo dia do mes corrente vc faz assim :
[code]
import java.util.Calendar;
import java.util.GregorianCalendar;
.
.
.
Calendar c = new GregorianCalendar();
System.out.println("Primeiro dia do mes: " + c.getActualMinimum(Calendar.DAY_OF_MONTH));
System.out.println("Ultimo dia do mes: " + c.getActualMaximum(Calendar.DAY_OF_MONTH));
[/code]
Não era pra retornar da data completa ao inves de só apenas primeiro e último dia do mês?
Cara, por que reviver tópicos antigos?
Prestou atenção? Este é de 2005 e a última resposta, antes da tua, é de 2008…
Se for o caso de retornar o primeiro e último dia, mas com a data completa, um jeito é fazer assim:
//instancia um Calendar com a data atual. Hoje, por exemplo, retornaria 31/10/2012, no formato Calendar, claro.
Calendar cal = Calendar.getInstance();
//Já que eu já tenho a data atual e quero pegar o menor e maior dia, vou manipular apenas o dia da instância gerada.
cal.set(Calencar.DAY_OF_MONTH, cal.getActualMinimum(Calendar.DAY_OF_MONTH));
//Imprime a data formatada para dd/mm/aaaa
System.out.println (new SimpleDateFormat("dd/MM/yyyy").format(cal.getTime()));
Para pegar a data final, é só substituir o getActualMinimum
por getActualMaximum
.
Cara, por que reviver tópicos antigos?
Prestou atenção? Este é de 2005 e a última resposta, antes da tua, é de 2008…[/quote]
Cara… pq, para o meu entendimento, a pergunta não foi respondida.
Se alguem estivesse procurando uma maneira de pegar a data completa, iria ter que abrir outro tópico. =P
Cara, por que reviver tópicos antigos?
Prestou atenção? Este é de 2005 e a última resposta, antes da tua, é de 2008…[/quote]
Cara… pq, para o meu entendimento, a pergunta não foi respondida.
Se alguem estivesse procurando uma maneira de pegar a data completa, iria ter que abrir outro tópico. =P[/quote]
Melhor abrir um novo tópico que ficar respondendo coisas extremamente antigas.
Ou vai responder a todos os tópicos que não possuem um [RESOLVIDO], independente de quando foram abertos?
Cara.
Relaxa. Eu encontrei isso ao acaso e achei que seria interessante deixar uma solução.
Simples assim.