1

レコードを含む ListView があり、レコードをタップすると詳細なレコード ビューが開きます。この詳細ビューで、現在のレコードと前のレコードの間の日数を出力したいと考えています。どうやってやるの?

最後に挿入された ID を取得する SQLite 関数が存在することは知っていますが、ここで役立つとは思えません。

私はそれを次のように解決しようと考えています:

  1. 詳細ビューに表示されている現在のレコードの ID を取得します
  2. 日付を取得して一時的に保存する
  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 です。

よろしく、 ラモン

4

2 に答える 2

0

IDで行ってはいけません。レコードの挿入中にタイムスタンプを挿入します。タイムスタンプでレコードの順序を取得します。

データを注文したら、あとは日付差分関数を書くだけです。

于 2013-02-20T10:20:41.213 に答える
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)));
于 2013-02-20T10:14:57.967 に答える