Alguém sabe me dizer se existe alguma função pronta como a interval() do postgres em java?
abraço,
Alguém sabe me dizer se existe alguma função pronta como a interval() do postgres em java?
abraço,
O que faz a interval() do postgres?
Se você estiver falando do tipo de dado interval, a resposta é não ainda. Só depois que colocarem as classes de data do JODA-time na API, o que deve ocorrer num futuro próximo.
Enquanto isso, você pode usar a própria biblioteca JODA-Time:
http://joda-time.sourceforge.net/
Que, diga-se de passagem, é muitíssimo mais fácil do que as classes nativas do Java feitas para se trabalhar com datas.
Olá Vini, essa parte do projeto tinha deixado pra depois hehehe, porisso a demora, agora chegou a hora de fazer mesmo :),
por exemplo, preciso que ao passar um Long que seria o getTime() de uma hora qualquer a função me retorne no formato “hh:MM;ss” caso seja menor de 24 horas, se for maior me retorne 1 day hh:MM:ss e assim por diante…
no postgres é só fazer campo1 + campo2 que ele já retorna isso…
Gostaria de saber se existe uma função no java pra isso, enquanto isso vou dar uma olhada no joda-time…
vlw
No Java tem a classe Calendar, mas os cálculos serão feitos no braço.
No Joda-Time, basta usar a classe Period.
Você só cria o period com as duas datas e usa os métodos getDay(), getHour(), getMinutes(), etc…
vlw Vini, dei uma pesquisa no joda-time e resolveu meu problema, segue abaixo a forma que fiz:
Period period = new Period(new LocalTime(23,3,10).getMillisOfDay()+new LocalTime(23,3,10).getMillisOfDay()+new LocalTime(23,3,10).getMillisOfDay());
int days = period.toPeriod().getDays();
int hours = period.toPeriod().getHours();
int minutes = period.toPeriod().getMinutes();
int seconds = period.toPeriod().getSeconds();
String str_day = (days > 1) ? "dias" : "dia";
System.out.println(days + " " + str_day +" " + nf.format(hours)+":"+minutes+":"+seconds);
isto me retorna:
2 dias 21:09:30
Pra que vc chama o método toPeriod() se vc já tem um period na mão?
[code]Period period = new Period(new LocalTime(23,3,10).getMillisOfDay()+new LocalTime(23,3,10).getMillisOfDay()+new LocalTime(23,3,10).getMillisOfDay());
int days = period.getDays();
int hours = period.getHours();
int minutes = period.getMinutes();
int seconds = period.getSeconds();
String str_day = (days > 1) ? “dias” : “dia”;
System.out.println(days + " " + str_day +" " + nf.format(hours)+":"+minutes+":"+seconds);
[/code]
aff… :shock:
viajei hehe