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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> jFreeCharts DateTickUnitType-объясните в двух сл? 
V
    Опции темы
Killer_13
Дата 18.5.2012, 18:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Один сотрудник помог... но все-равно иногда присутствует проблема в логике иногда не отображаются так как нужно часы, но проблема с наложением меток отпадает...

Код

final TickUnits units = new TickUnits();
        
        int pixelsW = 1400;
        int minLabelW = 75;
        int tickcount = pixelsW/minLabelW;
        
        DateTime start = new DateTime(this.startDate);
        DateTime end = new DateTime(this.endDate);
        
        int years = Years.yearsBetween(start, end).getYears();
        int months = Months.monthsBetween(start, end).getMonths();
        int days = Days.daysBetween(start, end).getDays();
        int hours = Hours.hoursBetween(start, end).getHours();
        
        units.add(new DateTickUnit(DateTickUnitType.YEAR, 1, new SimpleDateFormat("yyyy")));
        
        if (months > 0 && years / tickcount == 0) {
            int tickwidth = months % tickcount == 0 ? months / tickcount : months / tickcount + 1;
            units.add(new DateTickUnit(DateTickUnitType.MONTH, tickwidth, new SimpleDateFormat("MMM-yyyy")));
        }

        if (days > 0 && months / tickcount == 0) {
            int tickwidth = days % tickcount == 0 ? days / tickcount : days / tickcount + 1;
            units.add(new DateTickUnit(DateTickUnitType.DAY, tickwidth, new SimpleDateFormat("d-MMM-yyyy")));
        }
        if (hours > 0 && days / tickcount == 0) {
            int tickwidth = hours % tickcount == 0 ? hours / tickcount : hours / tickcount + 1;
            units.add(new DateTickUnit(DateTickUnitType.HOUR, tickwidth, new SimpleDateFormat("HH d-MMM-yyyy")));
        }
 
PM MAIL   Вверх
Killer_13
Дата 21.5.2012, 21:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Кажется у меня получилосьььь!!!
При тестировании глюкофф не обнаружено, и надеюсь, что и не обнаружится.
Вот.. может кому-то пригодится. При достижении отметки в 3 дня, начинает показывать часы

Код

        final TickUnits units = new TickUnits();

        int minLabelWidth = 85; // int pixelsW = this.chartWidth;
        int tickcount = this.chartWidth / minLabelWidth;
        System.out.println("tickcount: " + tickcount);

        DateTime startJodaTime = new DateTime(this.startDate);
        DateTime endJodaTime = new DateTime(this.endDate);

        int years = Years.yearsBetween(startJodaTime, endJodaTime).getYears();
        int months = Months.monthsBetween(startJodaTime, endJodaTime).getMonths();
        int days = Days.daysBetween(startJodaTime, endJodaTime).getDays();
        int hours = Hours.hoursBetween(startJodaTime, endJodaTime).getHours();

        units.add(new DateTickUnit(DateTickUnitType.YEAR, 1, new SimpleDateFormat("yyyy")));

        if (months > 2 && years / tickcount == 0) {
            int tickwidth = months % tickcount == 0 ? months / tickcount : months / tickcount + 1;
            System.out.println("tickMonthsWidth: " + tickwidth);
            units.add(new DateTickUnit(DateTickUnitType.MONTH, tickwidth, new SimpleDateFormat("MMM-yyyy")));
        }

        if (days > 3 && months / tickcount == 0) {
            int tickwidth = days % tickcount == 0 ? days / tickcount : days / tickcount + 1;
            System.out.println("tickDayWidth: " + tickwidth);
            units.add(new DateTickUnit(DateTickUnitType.DAY, tickwidth, new SimpleDateFormat("d-MMM-yyyy")));
        }


        if (hours > 0 && days <= 3 && days / tickcount == 0) {
            int tickwidth = hours % tickcount == 0 ? hours / tickcount : hours / tickcount + 1;
            System.out.println("tickHoursWidth: " + tickwidth);
            units.add(new DateTickUnit(DateTickUnitType.HOUR, tickwidth, new SimpleDateFormat("HH:mm d-MMM")));
        }

PM MAIL   Вверх
Ares4322
Дата 22.5.2012, 08:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 339
Регистрация: 25.9.2007
Где: Россия, Москва

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



Здорово! Надо будет потестить, как свободное время будет. Спасибо!
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.0417 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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