Trabalhando com datas utilizando a API JodaTime – Parte 1

Olá a todos!

Trabalhar com datas parece ser um pouco complicado, realizar cálculos de diferenças, trabalhar com minutos, segundos e até milissegundos.

Para isso temos as classes java.util.Date e java.util.Calendar, mas agora existem um nova API JodaTime.

Bom, neste primeiro será mostrado que com o uso desta API é possível deixar seu código mais limpo efetuando cálculos com datas.

Abaixo segue um exemplo:


import java.util.Calendar;
import java.util.Date;

import org.joda.time.DateTime;
import org.joda.time.Days;
import org.joda.time.Duration;
import org.joda.time.Hours;
import org.joda.time.Months;
import org.joda.time.Years;

public class JodaTimeExample {

	public static void main(String[] args) {
		
		Calendar calendarInitial = Calendar.getInstance();
		calendarInitial.set(Calendar.HOUR_OF_DAY, 1);
		calendarInitial.set(Calendar.MINUTE, 0);
		calendarInitial.set(Calendar.SECOND, 0);
		calendarInitial.set(Calendar.MILLISECOND, 0);
		
		Calendar calendarFinish = Calendar.getInstance();
		calendarFinish.add(Calendar.DAY_OF_MONTH, 37);
		calendarFinish.set(Calendar.HOUR_OF_DAY, 15);
		calendarFinish.set(Calendar.MINUTE, 0);
		calendarFinish.set(Calendar.SECOND, 0);
		calendarFinish.set(Calendar.MILLISECOND, 0);
		
		Date dateInitial = calendarInitial.getTime();
		Date dateFinish = calendarFinish.getTime();
		
		//--Exemplos que podem ajudar a deixar o código mais orgainzado
		
		System.out.println("\n");
		
		System.out.println(Duration.standardDays(1).getMillis() + " milliseconds.");
		System.out.println(Duration.standardDays(1).getStandardHours() + " hours.");
		System.out.println(Duration.standardDays(1).getStandardMinutes() + " minutes.");
		System.out.println(Duration.standardDays(1).getStandardSeconds() + " seconds.");

		System.out.println("\n");
		
		System.out.println(Duration.standardHours(48).getMillis() + " milliseconds.");
		System.out.println(Duration.standardHours(48).getStandardDays() + " days.");
		System.out.println(Duration.standardHours(48).getStandardMinutes() + " minutes.");
		System.out.println(Duration.standardHours(48).getStandardSeconds() + " seconds.");

		System.out.println("\n");
		
		System.out.println(Duration.standardMinutes(2880).getMillis() + " milliseconds.");
		System.out.println(Duration.standardMinutes(2880).getStandardDays() + " days.");
		System.out.println(Duration.standardMinutes(2880).getStandardHours() + " hours.");
		System.out.println(Duration.standardMinutes(2880).getStandardSeconds() + " seconds.");
		
		System.out.println("\n");

		System.out.println(Duration.standardSeconds(360000).getMillis() + " milliseconds.");
		System.out.println(Duration.standardSeconds(360000).getStandardDays() +" days.");
		System.out.println(Duration.standardSeconds(360000).getStandardHours() + " hours.");
		System.out.println(Duration.standardSeconds(360000).getStandardMinutes() + " minutes.");

		System.out.println("\n");

		//--Exemplos que podem ajudar a calcular diferenças entre datas
		
		System.out.println(Hours.hoursBetween(new DateTime(dateInitial), new DateTime(dateFinish)).getHours() + " hours.");
		System.out.println(Days.daysBetween(new DateTime(dateInitial), new DateTime(dateFinish)).getDays() + " days."); 
		System.out.println(Months.monthsBetween(new DateTime(dateInitial), new DateTime(dateFinish)).getMonths() + " months.");
		System.out.println(Years.yearsBetween(new DateTime(dateInitial), new DateTime(dateFinish)).getYears() + " years.");
		
		System.out.println("\n");
		
	}
	
}

No próximo post será mostrado mais sobre essa API e sobre a persistências dessas datas na sua base de dados.

Até mais…

Anúncios
Esta entrada foi postada em Java.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s