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

  • Автор темы Автор темы reZero
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

reZero

Активный участник
Пользователь
Баллы
76
У меня есть дата в конфиге, в формате dd-MM-yyyy.
У меня есть список игроков (в отдельном файле), мне нужно чтобы через день (от даты из конфига) игрок удалился из списка. Я не знаю, как можно отсчитать дату
помогите плез
 
Хранить timestamp удобней. А так - считывай дату и добавляй 1 день, в чём проблема?
 
знать бы еще как пользоваться этим timestamp'ом
System.currentTimeMillis()
А дальше математика...
1 секунда = 1000 миллисекунд
1 минута = 60000 миллисекунд
1 час = 3600000 миллисекунд
1 день = 86400000 миллисекунд
 
Почудил я с датами...
PHP:
            String DATE_FORMAT = "dd-MM-yyyy";
            SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT);
            Calendar c1 = Calendar.getInstance();
            String[] a = 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.DATE, 1);
                 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 ставлю ==, тогда вообще меня никогда не удаляет. В чем ошибка?
 
Почудил я с датами...
PHP:
            String DATE_FORMAT = "dd-MM-yyyy";
            SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT);
            Calendar c1 = Calendar.getInstance();
            String[] a = 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.DATE, 1);
                 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 ставлю ==, тогда вообще меня никогда не удаляет. В чем ошибка?
Лучше таймстамп используй, потому что твоё - фуфуфу.
 
Почудил я с датами...
PHP:
            String DATE_FORMAT = "dd-MM-yyyy";
            SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT);
            Calendar c1 = Calendar.getInstance();
            String[] a = 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.DATE, 1);
                 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 ставлю ==, тогда вообще меня никогда не удаляет. В чем ошибка?

Нельзя строки в 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())){
       //удалить из списка
}
 
Последнее редактирование:
Нельзя строки в 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())){
       //удалить из списка
}
Спасибо большое! По поводу сравнения объектов - почитал. Так сказать, открыл новую для себя информацию. Спасибо еще раз!
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх