Я использую Calendar Class в своем приложении для Android, чтобы вычислить день года даты, а затем провести некоторое сравнение с текущим днем года.Вот код, который я использую:
Date now=new Date();
Calendar ca1 = Calendar.getInstance();
ca1.set(now.getYear(), now.getMonth(), now.getDate());
int nowC=ca1.get(Calendar.DAY_OF_YEAR);
//Date arg0=say,get from user
Calendar ca2 = Calendar.getInstance();
ca2.set(arg0.GetBirthDay().getYear(),arg0.GetBirthDay().getMonth(),arg0.GetBirthDay().getDate());
int d1C=ca2.get(Calendar.DAY_OF_YEAR);
Я отлаживаю свое приложение и вижу следующее значение для текущего дня: пт мар 02 14:18:33 Азия / Тегеран 2012
и дляarg0: пт мар 02 00:00:00 Азия / Тегеран 1979
И у "nowC" 62, а у d1C 61.
Я ожидаю, что они равны, потому что обаимеет тот же месяц и день, также если я использую класс DateTime пакета joda, как показано ниже, я получаю те же результаты:
int ndy=dtnow.getDayOfYear();
int d1dy=dt1.getDayOfYear();
Почему это происходит?