Granny's Programming Pearls
"inside of every large program is a small program struggling to get out"
The moose likes Java in General and the fly likes calculate difference in months Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Java in General
Bookmark "calculate difference in months" Watch "calculate difference in months" New topic

calculate difference in months

dhanu sudha

Joined: Apr 16, 2002
Posts: 11
How to calculate difference in months between 2 dates?
Stan James
(instanceof Sidekick)
Ranch Hand

Joined: Jan 29, 2003
Posts: 8791
I think that's going to lead to the question of what is a month? 365.25/12 days? What's a month before March 30? Two months before March 30? Does (March 30 - 2 months) == (March 30 - 1 month - 1 month)?
Now that I'm confused (how about you?) GregorianCalendar class has an add method that lets you specify +-n of some unit. See if it will take month as the unit. Then try those cases above and see if you like the results!

A good question is never answered. It is not a bolt to be tightened into place but a seed to be planted and to bear more seed toward the hope of greening the landscape of the idea. John Ciardi
Vinod Chandana
Ranch Hand

Joined: Aug 26, 2003
Posts: 59
Originally posted by dhanu sudha:
How to calculate difference in months between 2 dates?

hi Dhanu Sudha,
Try this. Code is pretty self-explainatory.
import java.util.GregorianCalendar;
public class CalPractice {
public static void main(String[] args) {
GregorianCalendar c1 = new GregorianCalendar();
GregorianCalendar c2 = new GregorianCalendar();
c1.set(2003, 10, 10);
c2.set(2003, 10, 6);
System.out.println((c1.getTimeInMillis() - c2.getTimeInMillis())/86400000);

Adrian Yan
Ranch Hand

Joined: Oct 02, 2000
Posts: 688
Almost the same as Vinod Chandana's code
Stan James
(instanceof Sidekick)
Ranch Hand

Joined: Jan 29, 2003
Posts: 8791
Oops, I failed to read the question, didn't I? My rant was off topic - about how to add or subtract months to dates. There are "officially correct" answers to all those questions I threw out. But this is tricky enough to use somebody else's solution rather than write one.
Still, ask yourself what the results of the calculations above mean ... what is "exactly two months"? Same day-of-month two months ago? Or 59 or60 days ago (Jan + Feb)?
I agree. Here's the link:
subject: calculate difference in months
It's not a secret anymore!