我插入一些數據到Sqlite數據庫中,並在插入前檢查是否存在這一天的記錄。要檢查這一點,我必須看看如果天數> 0。例如2011-8-6和2011-8-5之間的差異(以天爲單位)是1.如何在Java中執行此操作?如何減去2個java.sql.Date日期?
編輯: 作爲@RayToal提到的,這可能在數據庫中完成的,所以我做了這樣:
SELECT julianday('now') - julianday(Date(Date)) from VIDEO_HISTORY;
只有這樣的問題是,它給我的十進制數。例如:3.3442346529103816 現在我必須決定內部Java如果給定數量是4天的3。 它的代碼是爲應用程序搜索某個術語的YouTube並將有關每日視圖的統計數據寫入數據庫。用戶可以例如每天20:00點安排工作。但是他可以決定在10:00點重新安排這項工作,所以程序員必須明白這一點,差別是有一天。所以很明顯,我必須四捨五入到第一個更大的數字。有沒有一些方法或我必須自己寫?
EDIT2:據@提供的鏈接邁克爾-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);
2011-8-6和2011-8-6之間的區別實際上是0.順便說一下,由於數據顯然存儲在數據庫中,因此您有什麼理由不使用SQL? – BalusC
既然你應該使用數據庫來計算這個,我會說這個問題是http://stackoverflow.com/questions/289680/difference-between-2-dates-in-sqlite的dup。如果由於某種原因,你有使用Java進行計算,請這麼說。然後看看Joda-Time。 :) –
@BalucC對不起,這是「lapsus calami」,我編輯了這個。 –