Я вставляю некоторые данные в базу данных Sqlite и перед вставкой проверяю, существует ли запись за этот день. Чтобы проверить это, я должен увидеть, равно ли количество дней> 0. Например, разница (в днях) между 2011-8-6 и 2011-8-5 составляет 1. Как это сделать в Java?
РЕДАКТИРОВАТЬ: Как упомянул @RayToal, это можно сделать в базе данных, поэтому я сделал так:
SELECT julianday('now') - julianday(Date(Date)) from VIDEO_HISTORY;
Единственная проблема заключается в том, что он дает мне десятичное число. Например: 3.3442346529103816 Теперь мне нужно решить внутри Java, является ли заданное число 3 из 4 дней. Это код для приложения, которое ищет на YouTube какой-либо термин и записывает статистические данные о ежедневных просмотрах в базу данных. Пользователь может запланировать работу, например, каждый день в 20:00 часов. Но тогда он может решить перенести эту работу на 10:00, поэтому программа должна понять это, как разницу в один день. Поэтому очевидно, что мне нужно округлить до первого большего числа. Есть ли какой-то метод для этого или я должен написать сам?
EDIT2: Согласно ссылкам, предоставленным @Michael-O, это лучшее решение (с использованием JodaTime):
DateTime start = new DateTime(new GregorianCalendar(2011, 8, 4).getTime());
DateTime end = new DateTime(new GregorianCalendar(2011, 8, 8).getTime());
int numberOfDays = Days.daysBetween(start.toDateMidnight(), end.toDateMidnight()).getDays();
System.out.println(numberOfDays);