Is there a method in any native Java class to calculate how many days were/will be in a specific year? As in, was it a Leap year (366 days) or a normal year (365 days)?
You can use the TimeUnit class. For your specific needs this should do:
public static int daysBetween(Date a, Date b) {
final long dMs = a.getTime() - b.getTime();
return TimeUnit.DAYS.convert(dMs, TimeUnit.MILLISECONDS);
}
Honestly, I don't see where leap years play any role in this calculation, though. Maybe I missed some aspect of your question?
Edit: Stupid me, the leap years magic happens in the Date.getTime(). Anyway, you don't have to deal with it this way.
GregorianCalendar.isLeapYear(int year)
Another way to do it is to ask the Calendar class for the actual maximum days in a given year:
Calendar cal = Calendar.getInstance();
cal.setTime(new Date());
int numOfDays = cal.getActualMaximum(Calendar.DAY_OF_YEAR);
System.out.println(numOfDays);
This will return 366 for a bisestile year, 365 for a normal one.
Note, I used getActualMaximum instead of getMaximum, which will always returns 366.