Date Arithmetic in Java

Date Arithmetic in Java

I have a ResultSet created using JDBC and it contains some datefields. Now I want to subtract one date from the other. Howdo I do this?

Date arithmetic in Java is performed by instances of the Calendarclass. The Date class, and subclasses thereof, are place holders for dateand time information, but do not support arithmetic operations. Toadd or subtract dates you need to set the time, represented by aCalendar instance, to that contained in a Date object. You can do thiswith Calendar.setTime(Date), which accepts a Date parameter.

The java.sql.Date and java.sql.Timestamp classes are both subclassesof java.util.Date, so they may be used to set the Calendar’stime value. Additions and subtractions are done one field at a time withadd(int field, int amount), and negative amounts are used tosubtract time. The following example simulates getting a date from adatabase and subtracts a day from it.

import java.util.*;public final class DateToCalendar {  public static final Date queryDate() {    return new Date();  }  public static final void main(String[] args) {    Date today, yesterday;    Calendar calendar;    today = queryDate();    calendar = Calendar.getInstance();    calendar.setTime(today);    calendar.add(Calendar.DATE, -1);    yesterday = calendar.getTime();    System.out.println("Today    : " + today.toString());    System.out.println("Yesterday: " + yesterday.toString());  }}


Share the Post: