1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

(Решено)Как отсчитать дату из конфига

Тема в разделе "Разработка плагинов для новичков", создана пользователем reZero, 19 апр 2018.

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

    reZero Активный участник Пользователь

    Баллы:
    76
    У меня есть дата в конфиге, в формате dd-MM-yyyy.
    У меня есть список игроков (в отдельном файле), мне нужно чтобы через день (от даты из конфига) игрок удалился из списка. Я не знаю, как можно отсчитать дату
    помогите плез
     
  2. Cool_boy

    Cool_boy Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    prettydude
    Хранить timestamp удобней. А так - считывай дату и добавляй 1 день, в чём проблема?
     
  3. Автор темы
    reZero

    reZero Активный участник Пользователь

    Баллы:
    76
    знать бы еще как пользоваться этим timestamp'ом
     
  4. Типа админ:D

    Типа админ:D Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Qamulex
    System.currentTimeMillis()
    А дальше математика...
    1 секунда = 1000 миллисекунд
    1 минута = 60000 миллисекунд
    1 час = 3600000 миллисекунд
    1 день = 86400000 миллисекунд
     
  5. hyndorik

    hyndorik Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    hyndo
    А можно было просто юзать TimeUnit
     
  6. Типа админ:D

    Типа админ:D Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Qamulex
    Я не использую магию вне хогвартса.
     
  7. hyndorik

    hyndorik Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    hyndo
    Твои магические числа и есть магия)
     
  8. Автор темы
    reZero

    reZero Активный участник Пользователь

    Баллы:
    76
    Почудил я с датами...
    PHP:
                String DATE_FORMAT "dd-MM-yyyy";
                
    SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT);
                
    Calendar c1 Calendar.getInstance();
                
    String[] Manager.getDate(p).split("-");
                
    int day Integer.valueOf(a[0]);
                     
    int mounth Integer.valueOf(a[1]);
                     
    int year Integer.valueOf(a[2]);
                     
    c1.set(day,mounth,year);
                     
    c1.add(Calendar.DATE1);
                     
    Date now = new Date();
                     
    SimpleDateFormat two =  new SimpleDateFormat("dd-MM-yyyy");
                     if(
    sdf.format(c1.getTime()) != two.format(now))
                     {
                         
    Manager.removePlayer(p);
                     }
    Когда я захожу на сервер (эта проверка в join event'е) меня в любом случае удаляет из списка, неважно какая дата. Если я в if ставлю ==, тогда вообще меня никогда не удаляет. В чем ошибка?
     
  9. Типа админ:D

    Типа админ:D Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Qamulex
    Лучше таймстамп используй, потому что твоё - фуфуфу.
     
  10. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    unix time < > =. Так проще считать.
     
  11. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Код:
            if(curent-old>TimeUnit.DAY.millis) {
               //TODO
            }
     
  12. danilko

    danilko Старожил Пользователь

    Баллы:
    103
    Нельзя строки в java так сравнивать. Для этого есть метод equals.
    == и != работают с объектами не так, как тебе кажется. ( https://javanerd.ru/основы-java/сравнение-объектов-в-java/ )

    Да возненавидят меня любители timestamp (хотя я тоже таковым являюсь), но для этой задачи совсем не обязательно мучать того, кто будет потом настраивать данный плагин (конфиг же).

    PHP:
    SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
    Date date sdf.parse("19-04-2018");//типа дата с конфига

    Calendar cal Calendar.getInstance();
    cal.add(Calendar.DATE,-1);

    if(
    date.before(cal.getTime())){
           
    //удалить из списка
    }
     
    Последнее редактирование: 19 апр 2018
  13. Автор темы
    reZero

    reZero Активный участник Пользователь

    Баллы:
    76
    Спасибо большое! По поводу сравнения объектов - почитал. Так сказать, открыл новую для себя информацию. Спасибо еще раз!
     
Статус темы:
Закрыта.

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