I am trying to calculate a date time difference but I'm getting some strange results: Here is the source:
import java.util.Calendar;
import java.util.Collections;
import java.util.Vector;
public class Main {
static Calendar dcal = Calendar.getInstance();
static Calendar ccal = Calendar.getInstance();
public static void main(String[] args) {
dcal.set(2011, 1, 27);
ccal.set(2011,2,1);
long dtime = dcal.getTimeInMillis();
long ctime = ccal.getTimeInMillis();
long diff = ctime - dtime;
int hours = (int) (diff / (1000 * 60 * 60));
System.out.println("hours->"+hours);
}
}
When I set ccal to 1 31 2011 the date difference is 96 hours but when I set it to 2 1 2011 the date difference is 48 hours. How can this be? What is the remedy?
Thanks,
Elliott
getTime() – d1. getTime(). Use date-time mathematical formula to find the difference between two dates. It returns the years, days, hours, minutes, and seconds between the two specifies dates.
If you're setting ccal like so "ccal.set(2011, 1, 31)
" the date is actually March 3, 2001, since months are zero based and the calendar rolls by default. So the difference of 48hrs (96-48) is correct because there are two days between March 1 (set(2011,2,1)
) and March 3 (set(2011,1,31)
).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With