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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> получить getTimeInMillis() из Calendar 
:(
    Опции темы
renex
Дата 5.12.2005, 03:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



java.util.Calendar - абстрактный класс, но объект Calendar можно получить так:
Calendar cal = Calendar.getInstance();
Метод класса Calendar - getTimeInMillis() - protected, поэтому я не могу прямо сразу обратиться к нему, а мне он очень нужен. я написал расширение класса Calendar:
Код

import java.util.Calendar;
public abstract class TaskCalendar extends java.util.Calendar
    {
    public long getMillis(Calendar cal)
        {
        super.set(cal.YEAR, cal.MONTH, cal.DATE, cal.HOUR, cal.MINUTE, cal.SECOND);
        delay = super.getTimeInMillis();
        return delay;
        }
    }

Так вот проблема в том, что я не могу воспользоваться написанным методом, потому что не могу создать объект класса TaskCalendar - он же абстрактный! А получить его объект через TaskCalendar.getInstance() - возвращает обычный Calendar.
Класс Date - позволяет получить в миллисекундах время только с "начала времен" до текущего момента, а мне нужно для определенной даты, динамически задающейся пользователем в календаре получать её значение в миллисекундах с "начала времен". Есть какие-нибудь идеи как мне это сделать??
PM MAIL   Вверх
tux
Дата 5.12.2005, 03:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Летатель
***


Профиль
Группа: Участник Клуба
Сообщений: 1853
Регистрация: 10.2.2005
Где: msk.ru

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



Метод java.util.Calendar.getInstance() возвращает не абстрактный, а вполне конкретный класс - java.util.GregorianCalendar. Если создаешь свой класс проще будет от него и унаследовать, в java.util.Calendar много абстрактных методов придется реализовывать.
Код

public class TaskCalendar extends GregorianCalendar {
    public long getMillis(Calendar cal) {
        super.set(cal.YEAR, cal.MONTH, cal.DATE, cal.HOUR, cal.MINUTE,
                cal.SECOND);
        long delay = super.getTimeInMillis();
        return delay;
    }
}


PM MAIL Skype GTalk Jabber YIM   Вверх
maximb
Дата 5.12.2005, 10:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Awaiting Authorisation
Сообщений: 48
Регистрация: 23.5.2005
Где: Украина, г.Симфер ополь

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



Почему этот метод protected.
Вот реализация этого метода в Calendar

Код
/**
* Returns this Calendar's time value in milliseconds. 
*
* @return the current time as UTC milliseconds from the epoch.
* @see #getTime()
* @see #setTimeInMillis(long)
*/
public long getTimeInMillis() {
   if (!isTimeSet) {
      updateTime();
   }
   return time;
}


и этот метод public
PM ICQ   Вверх
renex
Дата 5.12.2005, 11:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



maximb
Возможно, у меня другая версия, но при попытке:
Calendar cal = Calendar.getInstance();
long ms = cal.getTimeInMillis();
Пишет, что метод protected.


tux
Спасибо большое!
Получилось так:
Код

import java.util.*;
public class TaskCalendar extends GregorianCalendar
    {
    public long getMillis() {
        long delay = super.getTimeInMillis();
        return delay;
    }
}

Вызвал, и всё получилось. Несказанно рад*)
Теперь вместо Calendar буду везде в проекте работать с этим классом, хотя раньше искал лишь реализацию этого метода. Может, еще допишу что-то.

Это сообщение отредактировал(а) renex - 5.12.2005, 11:49
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




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


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

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