2013-02-20 126 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去。插入记录时插入时间戳。通过时间戳获取记录顺序。

一旦您订购了数据,它只是写作日期差异函数的问题。

相关问题