I have to calculate in Java what is the number of the current day in the year.
For example if today is the 1 of January the resut should be 1. If it is the 5 of February the result should be 36
How can I automatically do it in Java? Exist some class (such as Calendar) that natively supports this feature?
You can use java.util.Calendar class. Be careful that month is zero based. So in your case for the first of January it should be:
Calendar calendar = new GregorianCalendar(2015, 0, 1);
int dayOfYear = calendar.get(Calendar.DAY_OF_YEAR);
With Java 8:
LocalDate date = LocalDate.of(2015, 2, 5);
int dayNum = date.getDayOfYear();
Calendar#get(Calendar.DAY_OF_YEAR);
int dayOfYear = Calendar.getInstance().get(Calendar.DAY_OF_YEAR);
In Joda-Time 2.7:
int dayOYear = DateTime.now().getDayOfYear();
Time zone is crucial in determining a day. The code above uses the JVM's current default time zone. Usually better to specify a time zone.
DateTimeZone zone = DateTimeZone.forID( "America/Montreal" );
int dayOYear = DateTime.now( zone ).getDayOfYear();