/**
* Este arquivo é parte do Biblivre3.
*
* Biblivre3 é um software livre; você pode redistribuí-lo e/ou
* modificá-lo dentro dos termos da Licença Pública Geral GNU como
* publicada pela Fundação do Software Livre (FSF); na versão 3 da
* Licença, ou (caso queira) qualquer versão posterior.
*
* Este programa é distribuído na esperança de que possa ser útil,
* mas SEM NENHUMA GARANTIA; nem mesmo a garantia implícita de
* MERCANTIBILIDADE OU ADEQUAÇÃO PARA UM FIM PARTICULAR. Veja a
* Licença Pública Geral GNU para maiores detalhes.
*
* Você deve ter recebido uma cópia da Licença Pública Geral GNU junto
* com este programa, Se não, veja em <http://www.gnu.org/licenses/>.
*
* @author Alberto Wagner <alberto@biblivre.org.br>
* @author Danniel Willian <danniel@biblivre.org.br>
*
*/
package biblivre3.utils;
import java.text.DateFormat;
import java.text.DecimalFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
/**
*
* @author Danniel Nascimento (dannielwillian@biblivre.org.br)
* @since 23/03/2009
*/
public class DateUtils {
public static final DateFormat dd_MM_yyyy = new SimpleDateFormat("dd/MM/yyyy");
public static String getCurrentDateTimeISO8601() {
DecimalFormat df = new DecimalFormat("00");
Calendar calendar = GregorianCalendar.getInstance();
int hour = calendar.get(Calendar.AM_PM) == Calendar.AM ? calendar.get(Calendar.HOUR) : calendar.get(Calendar.HOUR) + 12;
return (new Integer(calendar.get(Calendar.YEAR))).toString() +
"-" + df.format(calendar.get(Calendar.MONTH) + 1) +
"-" + df.format(calendar.get(Calendar.DATE)) +
" " + df.format(hour) +
":" + df.format(calendar.get(Calendar.MINUTE)) +
":" + df.format(calendar.get(Calendar.SECOND));
}
public static int dateDiff(Date date1, Date date2) {
int count = 0;
int diff = 0;
Calendar cal1 = Calendar.getInstance();
Calendar cal2 = Calendar.getInstance();
cal1.setTime(date1);
cal2.setTime(date2);
while (cal1.get(Calendar.YEAR) != cal2.get(Calendar.YEAR)) {
count = 365 * (cal2.get(Calendar.YEAR) - cal1.get(Calendar.YEAR));
diff += count;
cal1.add(Calendar.DAY_OF_YEAR, count);
}
if (cal1.get(Calendar.DAY_OF_YEAR) != cal2.get(Calendar.DAY_OF_YEAR)) {
count = cal2.get(Calendar.DAY_OF_YEAR) - cal1.get(Calendar.DAY_OF_YEAR);
diff += count;
}
return diff;
}
public static Date add(final Date date, final Integer field, final Integer amount) {
Calendar cal = new GregorianCalendar();
cal.setTime(date);
cal.add(field, amount);
return cal.getTime();
}
public static String format(final DateFormat f, final Date d) {
return f.format(d);
}
public static Date verifyDate(final String texto, String dateFormat) {
SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
Date date = null;
sdf.setLenient(false);
try {
if (!texto.equals("")) {
date = sdf.parse(texto);
}
return date;
} catch (ParseException ex) {
}
return null;
}
}