Palych wrote:Let's assume that now's Dec 10 9:45AM and we need to check if "Dec 11 10:00AM" is tomorrow (is that what you need, Sabina?).
If we calculate "tomorrow" that way, it won't be considered as tomorrow...
В моем случае dates(checkDate для данного куска кода) в базе в формате UTC и они с минутами, секундами и проч.
startDate и endDate заданы юэером с UI через Date Buttons, то есть они преобразованы к формат, где время округлено до полуночи. То есть скажем 12-е ноября, например, существует в виде - 11/12/2003 00:00:00.
Выборка данных между start и end dates идет из таблиц аудита, где каждая запись имеет timestamp( то что мы выдергиваем как checkDate)
то есть выражения
Code: Select all
Date d = new Date( new Date().getLong() - 24 * 60 * 60 * 1000L );
Date d = new Date( new Date().getLong() + 24 * 60 * 60 * 1000L );
мне по идее подойдут, потому что они отрежут/прибавят ровно сутки от полуночи.
Настя, вы совершенно правы про февраль, високосный год и т.д. То есть я в итоге все сделала с Calendar.
Единственное что я не поняла, почему в случае метода roll он переведет дату правильно, а в выражении
Code: Select all
c.set(c.DAY_OF_MONTH, c.get(c.DAY_OF_MONTH)-1);
нет?
При этом же используется тот же объект - Calendar (c). Неужели он DAY_OF_MONTH прибавляет без учета сколько дней в самом этом MONTH?
Всем большое спасибо!
Сабина