我将一些数据插入到 Sqlite 数据库中,并在插入之前检查这一天的记录是否已经存在。要检查这一点,我必须查看天数是否> 0。例如,2011-8-6 和 2011-8-5 之间的差异(以天为单位)为 1。如何在 Java 中执行此操作?
编辑:正如@RayToal 提到的,这可以在数据库中完成,所以我这样做了:
SELECT julianday('now') - julianday(Date(Date)) from VIDEO_HISTORY;
唯一的问题是它给了我十进制数。例如:3.3442346529103816 现在我必须在 Java 内部决定给定的数字是否是 4 天中的 3 天。它的代码适用于在 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);