0

「小さな」問題があります。「Flights」というテーブルを持つSQLiteDatabase(「PLB」) があります。"Total_Flight_Time"このテーブルには、時間を記憶する TIME 型という列がありますHH:MM format。時間と分の合計を作りたいです。のようなものです01:20 + 01:50 = 03:10 (HH:MM)が、私はそれを行う方法がわかりません。

ここで、stackoverflow でコードを見つけました: Function from DBAdapter:

public Cursor getTotalTime() throws SQLException {
return db.rawQuery("SELECT sum(strftime('H%:%M', Total_Flight_Time) - strftime('H%:%M', '00:00')), 'unixepoch' FROM Flights",null);
        }

メイン アクティビティでの関数呼び出し (テキスト ビューで SUM の結果を表示する必要があります):

DBHelper.open();
TextView txt = (TextView)findViewById(R.id.textView22);
String total = DBHelper.getTotalTime().toString();
txt.setText(total);

しかし、画面には次のように表示されます。android.database.sqlite.SQLiteCursor@41aa42b8

問題を解決するには、関数と関数呼び出しをどのように行う必要がありますか? HH:MM を表示するにはどうすればよいですか? :)

解決しました!解決:

DBAdapter 関数:

public Cursor getTotalTime() throws SQLException {
return db.rawQuery("SELECT time(sum(strftime('%s', Total_Flight_Time) - strftime('%s','00:00:00')),'unixepoch') FROM Flights",null);

}

メイン アクティビティでの関数呼び出し:

TextView txt = (TextView)findViewById(R.id.textView22);
        Cursor c = DBHelper.getTotalTime();

         c.moveToFirst();
         String[] names = c.getColumnNames(); // inspect this as it should have a length of 1
                 String total = c.getString(c.getColumnIndex(names[0]));

        txt.setText(total);
4

3 に答える 3

0
SimpleDateFormat formatter = new SimpleDateFormat("HH:MM");
Date curDate = formatter.parse(DBHelper.getTotalTime().toString());
long curMillis = curDate.getTime();

次に、これを他の日付に追加し (再び long に変換します)、合計を日付形式で表示できます。

于 2013-07-12T20:21:15.443 に答える