Модераторы: javastic, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Календарь ежемесячное напоминание, Организовать ежемесячное напоминание 
:(
    Опции темы
коронованный
Дата 25.4.2009, 22:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 24.9.2008

Репутация: нет
Всего: нет



Есть программа - устанавливает на 27 апреля 17.00 вечера напоминание в календарь. Подскажите, как сделать, чтоб это напоминание устанавливалось не только на апрель, но и на все месяцы года (не тупое перечисление всех месяцев и цикл, а использование функции календаря - ежемесячный повтор). Вот код программы:
Код

EventList list = null;
        PIM pim = PIM.getInstance();
        Calendar c = Calendar.getInstance();
     
        c.set(Calendar.DAY_OF_MONTH, 27);
        c.set(Calendar.HOUR_OF_DAY, 17);
        c.set(Calendar.MINUTE, 0);

try{
c.set(Calendar.MONTH, Calendar.APRIL);
 

            list = (EventList) pim.openPIMList(PIM.EVENT_LIST, PIM.WRITE_ONLY);

            Event todo = list.createEvent();
           
           
             if (list.isSupportedField(Event.SUMMARY))
                  todo.addString(Event.SUMMARY, PIMItem.ATTR_NONE, "Напоминание");
             if (list.isSupportedField(Event.START))
                  todo.addDate(Event.START, PIMItem.ATTR_NONE, c.getTime().getTime());
             if (list.isSupportedField(Event.END))
                  todo.addDate(Event.END, PIMItem.ATTR_NONE, c.getTime().getTime());
             if (list.isSupportedField(Event.NOTE))
                  todo.addString(Event.NOTE, PIMItem.ATTR_NONE, "Позвони");
             if (list.maxCategories() != 0 && list.isCategory("Work"))
                  todo.addToCategory("Work");
             if (list.isSupportedField(Event.ALARM))
                  todo.addInt(Event.ALARM, PIMItem.ATTR_NONE, 0);

          // вроде ежемесячный повтор устанавливается как-то так (только что-то не правильно):
          //   if (list.isSupportedField(Event.REVISION))
           //       todo.addDate(Event.REVISION,PIMItem.ATTR_NONE, MONTHLY);

            
            //Записываем
            try {
                todo.commit();
            } catch (PIMException e) {
                e.printStackTrace();
            }

            //закрываем
            try {
              list.close();
            } catch (PIMException e) {
                e.printStackTrace();
            }

            
        }catch (Exception e){
            e.printStackTrace();
        }


И еще такой нюанс, время почему-то привязывается к 0 часовому поясу. и если поставить 17 часов, то для СПб получается 13 часов (0 пояс+4 часа). и если программу запустить на дальнем востоке, то напоминание сработает ночью. как можно это обойти - чтоб везде срабатывало в 17.00 вечера скажем.

Это сообщение отредактировал(а) коронованный - 25.4.2009, 22:05
PM MAIL   Вверх
коронованный
Дата 26.4.2009, 02:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 24.9.2008

Репутация: нет
Всего: нет



По первому вопросу разобрался. Нужно было добавить перед 
Код

 try {
                todo.commit();
....

следующий код:
Код

RepeatRule rr = new RepeatRule();
             rr.setInt(RepeatRule.FREQUENCY, RepeatRule.MONTHLY);
             rr.setInt(RepeatRule.DAY_IN_MONTH, 27);
             rr.setDate(RepeatRule.END, c.getTime().getTime());
             todo.setRepeat(rr);

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

  • Прежде чем задать вопрос прочтите это!
  • Литература по Java находится здесь.
  • Литературу по Java обсуждаем здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда

  • FAQ раздела лежит здесь!
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java ME (J2ME) | Следующая тема »


 




[ Время генерации скрипта: 0.0574 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.