Manipulando Datas(Exemplo rápido)

(por Evandro)
Extraído do site:
www.portaljava.com

Exemplo trabalhar com datas, manipulando semanas, dias, meses e ano.

Salve o código em um arquivo chamado TrabalhaDatas.java e compilê-o.


import java.util.*;
import java.text.*;

/**
* Exemplo rápido para trabalhar com datas
* @author Evandro
*
*/
public class TrabalhaDatas {

/**
* Método principal para testar o exemplo.
*
* @param args
*/
public static void main(String args[]) {

String sDateChanged = null;
Date dToday = new Date();

String sTpAdd = "W";
int iValue;
System.out.println("DataHoje : " + dToday);
System.out.println("----------------------------------------------");

iValue = 2;
sDateChanged = workWithDates(dToday, "W", iValue);
System.out.println("1) Adicionado" + iValue + " SEMANAS : " + sDateChanged);
sDateChanged = null;

iValue = 10;
sDateChanged = workWithDates(dToday, "D", iValue);
System.out.println("2) Adicionado" + iValue + " DIAS : " + sDateChanged);
sDateChanged = null;

iValue = 3;
sDateChanged = workWithDates(dToday, "M", iValue);
System.out.println("3) Adicionado" + iValue + " MES : " + sDateChanged);
sDateChanged = null;

iValue = 5;
sDateChanged = workWithDates(dToday, "Y", iValue);
System.out.println("2) Adicionado" + iValue + " ANOS : " + sDateChanged);
sDateChanged = null;
}

/**
* Método para teste do exemplo.
* @param dt
* @param tp
* @param qt
* @return
*/
public static String workWithDates(Date dt, String tp, int qt) {

Date tstHoje;
tstHoje = dt;
GregorianCalendar add2Weeks = new GregorianCalendar();
add2Weeks.setTime(tstHoje);

if (tp.equals("W")) {
// Adiciona "n"semanasa
add2Weeks.add(Calendar.WEEK_OF_MONTH, qt);
} else if (tp.equals("D")) {
//Adiciona "n" dias
add2Weeks.add(Calendar.DAY_OF_MONTH, qt);
} else if (tp.equals("M")) {
//Adiciona "n" meses
add2Weeks.add(Calendar.MONTH, qt);
} else if (tp.equals("Y")) {
//Adiciona "n" anos.
add2Weeks.add(Calendar.YEAR, qt);
}

Date d = add2Weeks.getTime();
//Pega uma instancia de DateFormat. A classe DateFormat encarrega-se
//de utilizar o "Locale" adequado
DateFormat df = DateFormat.getDateInstance();

//Formata a String adequadamente
String s = df.format(d);

return s;

}

}