У меня есть программа, в которой она сильно зависит от определения номера недели в году.Я выполнил работу ног и выяснил все проблемы, которые будут вызывать и разрешать этот метод.Я прекрасно работаю годами, которые имеют 53 недели и тому подобное.Моя единственная проблема заключается в том, что, когда я запускаю его на своем эмуляторе для 2.2, он работает отлично, как на этой неделе 19, и это правильно.когда я запускаю на телефоне G1, на неделе отображается 20. Как это исправить?
Вот мой код недели:
/**
* Format the date into a number that is the year*100 plus the week i.e. 2008 and its week 11
* would show as 811
* @param - String of a date to create a week id, must be in format of 2011-01-31 (YYYY-MM-DD)
* @return returns next weeks id
*/
public static int getWeekId(String date){
// Set the first day of week to Monday and set the starting new year weeks
// as a full first week in the new year.
Calendar c = Calendar.getInstance();
c.setFirstDayOfWeek(Calendar.MONDAY);
c.setMinimalDaysInFirstWeek(7);
if (!date.equalsIgnoreCase("")) {
String[] token = date.split("-", 3);
int year = Integer.parseInt(token[0]);
int month = Integer.parseInt(token[1])-1; // months are 0-11 stupid..
int day = Integer.parseInt(token[2]);
c.set(year, month, day);
}
int yearWeek = ( (c.get(Calendar.YEAR) - 2000)*100 + (c.get(Calendar.WEEK_OF_YEAR)));
Log.d("getWeekId()"," WEEK_OF_YEAR: " + c.get(Calendar.WEEK_OF_YEAR));
return yearWeek;
}