Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Возможно ли преобразовать код?

Тема в разделе "Разработка плагинов для новичков", создана пользователем Slavkaa, 1 июл 2017.

Статус темы:
Закрыта.
  1. Автор темы
    Slavkaa

    Slavkaa Новичок Пользователь

    Баллы:
    21
    Имя в Minecraft:
    Slavok2001
    Здравствуйте. Вчера на досуге решил написать преобразователь в секунды, минуты и т.д.
    Я хотел спросить, есть какое-нибудь оптимальное решение, нежели мое?
    Код:
        public void setCustomTime(Long time, String second, String minute, String hour, String day, String month, String year) {
            StringBuilder str = new StringBuilder();
            if(time >= 60) {
                if(time >= 3600) {
                    if(time >= 86400) {
                        if(time >= 2592000) {
                            if(time >= 31104000) {
                                long years = time/31104000;
                                long months = (time - (years*31104000))/2592000;
                                long days = (time - (years*31104000) - (months*2592000))/86400;
                                long hours = (time - (years*31104000) - (months*2592000) - (days*86400))/3600;
                                long minutes = (time - (years*31104000) - (months*2592000) - (days*86400) - (hours*3600))/60;
                                long seconds = time - (years*31104000) - (months*2592000) - (days*86400) - (hours*3600) - (minutes*60);
                                str.append(years + " " + year + " ");
                                if(years != 0) {
                                    str.append(months + " " + month + " ");
                                }
                                if(days != 0) {
                                    str.append(days + " " + day + " ");
                                }
                                if(hours != 0) {
                                    str.append(hours + " " + hour + " ");
                                }
                                if(minutes != 0) {
                                    str.append(minutes + " " + minute + " ");
                                }
                                if(seconds != 0) {
                                    str.append(seconds + " " + second + " ");
                                }
                                this.output = str.toString().trim();
                                return;
                            }
                            long months = time/2592000;
                            long days = (time - (months*2592000))/86400;
                            long hours = (time - (months*2592000) - (days*86400))/3600;
                            long minutes = (time - (months*2592000) - (days*86400) - (hours*3600))/60;
                            long seconds = time - (months*2592000) - (days*86400) - (hours*3600) - (minutes*60);
                            str.append(months + " " + months + " ");
                            if(days != 0) {
                                str.append(days + " " + day + " ");
                            }
                            if(hours != 0) {
                                str.append(hours + " " + hour + " ");
                            }
                            if(minutes != 0) {
                                str.append(minutes + " " + minute + " ");
                            }
                            if(seconds != 0) {
                                str.append(seconds + " " + second + " ");
                            }
                            this.output = str.toString().trim();
                            return;
                        }
                        long days = time/86400;
                        long hours = (time - (days*86400))/3600;
                        long minutes = (time - (days*86400) - (hours*3600))/60;
                        long seconds = time - (days*86400) - (hours*3600) - (minutes*60);
                        str.append(days + " " + day + " ");
                        if(hours != 0) {
                            str.append(hours + " " + hour + " ");
                        }
                        if(minutes != 0) {
                            str.append(minutes + " " + minute + " ");
                        }
                        if(seconds != 0) {
                            str.append(seconds + " " + second + " ");
                        }
                        this.output = str.toString().trim();
                        return;
                    }
                    long hours = time/3600;
                    long minutes = (time - (hours*3600))/60;
                    long seconds = time - (hours*3600) - (minutes*60);
                    str.append(hours + " " + hour + " ");
                    if(minutes != 0) {
                        str.append(minutes + " " + minute + " ");
                    }
                    if(seconds != 0) {
                        str.append(seconds + " " + second + " ");
                    }
                    this.output = str.toString().trim();
                    return;
                }
                long minutes = time/60;
                long seconds = time%60;
                str.append(minutes + " " + minute);
                if(seconds != 0) {
                    str.append(seconds + " " + second + " ");
                }
                this.output = str.toString().trim();
                return;
            }
        }
    
    P.S. Если использовать public String setCustomTime, то те return'ы, что в условиях, нифига не возвращает, только первое условие работает.
     
  2. Хостинг MineCraft
    <
  3. Dereku

    Dereku Старожил

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
  4. Автор темы
    Slavkaa

    Slavkaa Новичок Пользователь

    Баллы:
    21
    Имя в Minecraft:
    Slavok2001
Статус темы:
Закрыта.

Поделиться этой страницей