如何获取给定日期和上一个记录日期之间的天数?

时间:2013-02-20 10:11:33

标签: android sqlite android-sqlite

我有一个带有记录的ListView,并点击一条记录打开一个详细的记录视图。在这个详细视图中,我想打印出当前记录和上一记录之间的天数。我怎么能这样做?

我知道有一个SQLite函数获取最后插入的id,但我看不出它会有帮助。

我正在考虑以这种方式解决它:

  1. 获取详细视图中显示的当前记录的ID
  2. 获取日期并暂时保存
  3. 鉴于id,在当前id之前写的记录的id是什么?
  4. 根据前一条记录的ID,获取日期并暂时保存。
  5. 计算详细视图中当前记录与之前记录之间的天数。
  6. 所以,我想要的答案是:这个坦克持续了13天。

    实际上我已经停留在上面的第3步了,我怎么能找出,给定一个任意id,在该id之前存储在db中的记录是什么?对于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。

    亲切的问候,拉蒙

2 个答案:

答案 0 :(得分: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)));

答案 1 :(得分:0)

你不应该去ID。插入记录时插入时间戳。按时间戳获取记录顺序。

订购数据后,只需编写日期差异功能即可。