2013-02-20 127 views
1

我有一個ListView與記錄並點擊記錄打開詳細的記錄視圖。在這個詳細的視圖中,我想打印出當前記錄和前一記錄之間的天數。我怎樣才能做到這一點?如何獲得給定日期和之前記錄日期之間的天數?

我知道存在一個SQLite函數獲取最後插入的ID,但我看不出它在這裏會有所幫助。

我想解決這樣說的:

  1. 獲取詳細視圖
  2. 顯示當前記錄的ID獲取其日期和保存暫時
  3. 鑑於ID,什麼是在當前ID之前寫入的記錄的ID?
  4. 給定上一條記錄的ID,獲取其日期並臨時保存。
  5. 計算詳細視圖中的當前記錄與先前記錄之間的天數。

所以,我想要的答案是:這個坦克持續了13天。

其實我被困在上面的第3步,我怎麼能找到,給定一個任意的ID,記錄存儲在該數據庫之前,該ID,有ID?

一個例子:

id date note 
--------------------------- 
1 2013-01-03 first note 
2 2013-01-13 second note 
4 2013-01-20 ... 
7 2013-02-01 ... 

如果我打開ID爲4記錄的詳細視圖,我想計算了,因爲ID爲2記錄寫入的天數。即2013-01-20 - 2013-01-13。

親切的問候,拉蒙

回答

0

您可以用下面的辦法爲date操作: -

SimpleDateFormat formater=new SimpleDateFormat("yyyy-MM-dd"); 

long d1=formater.parse(date1Str).getTime(); 
long d2=formater.parse(date2Str).getTime(); 

System.out.println(Math.abs((d1-d2)/(1000*60*60*24))); 
+0

謝謝,雖然我的主要問題不是日期計算,但如何從給定記錄ID的前一個記錄中獲取日期? – Ramon 2013-02-20 10:20:40

+0

實際上,你的問題說日期之間沒有天,因此我的回覆。爲了得到以前的ID,應該有一些有相關數據的字段來查找以前的記錄。如下所示,您可以插入時間戳並使用該時間戳,您可以獲取上一條記錄,並將其與我的日期操作代碼相結合,以實現您想要的效果。 – SudoRahul 2013-02-20 10:25:04

0

你不應該被ID去。插入記錄時插入時間戳。通過時間戳獲取記錄順序。

一旦您訂購了數據,它只是寫作日期差異函數的問題。

相關問題