forum.bitel.ru
http://forum.bitel.ru/

как работает TimeUtils.dateInPeriod(Date checking,Period)
http://forum.bitel.ru/viewtopic.php?f=19&t=12001
Страница 1 из 1

Автор:  skyb [ 10 окт 2016, 11:02 ]
Заголовок сообщения:  как работает TimeUtils.dateInPeriod(Date checking,Period)

Код:
Calendar c = Calendar.getInstance();
c.add(Calendar.MONTH, -1);
Period p = new Period(TimeUtils.convertCalendarToDate(TimeUtils.getStartMonth(c)), TimeUtils.convertCalendarToDate(TimeUtils.getEndMonth(c)));

Вот что выводит принт на период
Код:
01.09.2016-30.09.2016

и вот что выводит вот такой принт
Код:
print("date1 " + date1 + "\n" + "TimeUtils.dateInPeriod(date1, p) " + TimeUtils.dateInPeriod(date1, p));

Код:
date1 2016-09-01
TimeUtils.dateInPeriod(date1, p) false

а чего, первый и последний дни в периоде не учитываются? (про последний не проверял, предположение)
если поставить следующую дату, то будет true, я про дату 02.09.2016

Автор:  barguzin2 [ 10 окт 2016, 13:46 ]
Заголовок сообщения:  Re: как работает TimeUtils.dateInPeriod(Date checking,Period

Не хватает куска кода, где задается date1, но предположение следующее: надо учитывать, что Date - это не только дата, но и время. И когда задается период приведенным методом, то он получается что-то вроде 01.09.2016 14:36:25 - 30.09.2016 14:36:25 (время для примера указал своё), а date1 устанавливается 01.09.2016 00:00:00 и получается, что оно не входит в период. Для конца периода как раз бы всё сработало. Пробуй даты периода задавать явно через calendar.set(year,month,date,hh,mm,ss).getTime().

Автор:  skyb [ 10 окт 2016, 14:00 ]
Заголовок сообщения:  Re: как работает TimeUtils.dateInPeriod(Date checking,Period

дата получается с sql запроса, а вот про период я не подумал, сбросил период в начало дня, да, действительно отработало

Автор:  dimOn [ 10 окт 2016, 14:24 ]
Заголовок сообщения:  Re: как работает TimeUtils.dateInPeriod(Date checking,Period

когда Date или Calendar используется в качестве "даты" (что неправильно) всегда надо очищать часы минуты сек и миллисек в нули

Автор:  skyb [ 10 окт 2016, 15:36 ]
Заголовок сообщения:  Re: как работает TimeUtils.dateInPeriod(Date checking,Period

dimOn писал(а):
когда Date или Calendar используется в качестве "даты" (что неправильно) всегда надо очищать часы минуты сек и миллисек в нули

а как правильно?

Автор:  barguzin2 [ 10 окт 2016, 16:32 ]
Заголовок сообщения:  Re: как работает TimeUtils.dateInPeriod(Date checking,Period

Цитата:
всегда надо очищать часы минуты сек и миллисек в нули
:lol:

Автор:  dimOn [ 10 окт 2016, 17:04 ]
Заголовок сообщения:  Re: как работает TimeUtils.dateInPeriod(Date checking,Period

skyb писал(а):
dimOn писал(а):
когда Date или Calendar используется в качестве "даты" (что неправильно) всегда надо очищать часы минуты сек и миллисек в нули

а как правильно?

это вопросы уже философские, а пока
barguzin2 писал(а):
Цитата:
всегда надо очищать часы минуты сек и миллисек в нули
:lol:

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/