Неправильный номер недели Android для телефона, но не для эмулятора - PullRequest
0 голосов
/ 13 мая 2011

У меня есть программа, в которой она сильно зависит от определения номера недели в году.Я выполнил работу ног и выяснил все проблемы, которые будут вызывать и разрешать этот метод.Я прекрасно работаю годами, которые имеют 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;

}

Ответы [ 3 ]

1 голос
/ 13 мая 2011

(я бы оставил это в комментарии, но моя учетная запись еще не имеет разрешений на комментирование.)

При вызове с 2011-01-01 код в настоящее время возвращает 1152. Это так, как задумано?

0 голосов
/ 28 июня 2011

Очевидно, это ошибка в телефоне Android ... так что следите за этим при использовании Android 1.6.

0 голосов
/ 14 мая 2011

Что бы это ни стоило, здесь, вероятно, больше запутанности, чем вы написали. Я не говорю, что это значит, просто есть много интересных странных случаев, которые вы не рассматривали. Есть хорошая библиотека Java, которая знает массу вещей раз, и, возможно, этот код уже написан. Проверьте это: http://joda -time.sourceforge.net /

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...