//criando uma interface Calendar, instanciando com GregorianCalendar
Calendar calendar = new GregorianCalendar();
//setando a data (axo que eh setTime msm…) calendar.setTime(2005,03,02);
//pegando o numero do dia no ano (10 de janeiro = 10)intdia1=cal.get(Calendar.DAY_OF_YEAR);calendar.setTime(2005,03,03);intdia2=cal.get(Calendar.DAY_OF_YEAR);
dia2-dia1 >> 1!
acho que isso vai resolver… mas só para datas no mesmo ano!!!
se os anos forem diverente, você pode fazer por etapas, tipo:
20/dez/2004 >> 10/jan/2005
faz de 20/dez ate dia 31/dez, e de 1/jan ate 10/jan
[]`s
R
ronildoPJ
Ohhh cara… valeu… acho que deu certo… so estou meio encudo com ano
bisesto… Da uma olha e ve se vale fazer dessa forma !
privateLocalelocale;privateTimeZonetimeZone;protectedfinalStringDATABASE=“07/10/1997”; //data base para calculo do fator de vencimentoprotectedintcalculaFatorVencimento(StringargDataVencimento){
StringdataInicial[]=DATABASE.split("/");StringdataVencimento[]=argDataVencimento.split("/");
Ohhh comunidade… tudo beleza.
Andei tendo problemas com datas… realmente é meio complicado trabalhar com datas em java ! Acho que consegui resolver o problema com a ajuda de vcs… mas será que realmente precisa fazer tudo isso ?
Por favor… olhem o codigo abaixo e me dizem oque vcs acham.
public class Time {
privatefinalStringDATABASE="07/10/1997";//data base para calculo do fator de vencimentoprivatefinalTimeZonetimeZone=TimeZone.getTimeZone("America/Los_Angeles");privatefinalLocalelocale=newLocale("pr","BR");/** * Um ano é bissexto se for divisivel por 4 mas nao divisivel por 100, * exceto pelos anos divisiveis por 400, que sao bissextos. * @param argDataInicial * @param argDataFinal */privatefinalintisAnoBissexto(intano){if((ano%4==0&&ano%100!=0)||ano%400==0)return1;return0;}protectedintcalculaFatorVencimento(StringargDataVencimento){StringdataInicial[]=DATABASE.split("/");StringdataVencimento[]=argDataVencimento.split("/");intanoVenc=Integer.parseInt(dataVencimento[2]);intanoIni=Integer.parseInt(dataInicial[2]);Calendarcalendar=GregorianCalendar.getInstance(timeZone,locale);calendar.set(anoIni,Integer.parseInt(dataInicial[1]),Integer.parseInt(dataInicial[0]));intdiaInicial=calendar.get(Calendar.DAY_OF_YEAR);calendar.set(anoVenc,Integer.parseInt(dataVencimento[1]),Integer.parseInt(dataVencimento[0]));intdiaVencimento=calendar.get(Calendar.DAY_OF_YEAR);intanoBissexto=0;while(anoIni<anoVenc)anoBissexto+=isAnoBissexto(anoIni++);return(diaVencimento-diaInicial)+((anoVenc-anoIni)*365)+anoBissexto;}publicstaticvoidmain(Stringargs[]){System.out.println(newTime().calculaFatorVencimento("05/07/2000"));}
}
M
marcoscorsoPJ
como faco para comparar duas datas ???
a inicial vou digitar num textfield e a final em outro textfield ???