title: How to calculate difference between two dates in years...etc with Joda-Time
body: <pre><code>import java.text.SimpleDateFormat;
  import java.util.Date;
  import org.joda.time.*;
  
  public class Test {
  
    public static void main(String[] args) {
  
  String dateStart = "01/01/2000 05:30";
  String dateStop = "02/2/2001 06:31";
  
  SimpleDateFormat format = new SimpleDateFormat("MM/dd/yyyy HH:mm");
  
  Date d1 = null;
  Date d2 = null;
  
  try {
      d1 = format.parse(dateStart);
      d2 = format.parse(dateStop);
  
      DateTime dt1 = new DateTime(d1);
      DateTime dt2 = new DateTime(d2);
  
      System.out.print(Years.yearsBetween(dt1, dt2).getYears() + " years, ");
      System.out.print(Months.monthsBetween(dt1, dt2).getMonths() % 52 + " months, ");
      System.out.print(Weeks.weeksBetween(dt1, dt2).getWeeks() % 4 + " weeks, ");
      System.out.print(Days.daysBetween(dt1, dt2).getDays() % 7 + " days, ");
      System.out.print(Hours.hoursBetween(dt1, dt2).getHours() % 24 + " hours, ");
      System.out.print(Minutes.minutesBetween(dt1, dt2).getMinutes() % 60 + " minutes, ");
  
  
   } catch (Exception e) {
      e.printStackTrace();
   }
  
  }
  
  }
  </code></pre>
  
  <p>I want to output the number of years, months, weeks, days, hours, and minutes between two dates using <a href="http://www.joda.org/joda-time/">Joda-Time</a>. My question is where do I implement the number of weeks in a month (which in never constant). I don't think my %'s are right either.</p>
  
  <p>When run I get:</p>
  
  <pre><code>1 years, 13 months, 0 weeks, 6 days, 1 hours, 1 minutes, 
  </code></pre>