0

再会!我有一个计算日期的问题。我有一个日期(一年中的一天数)和今天的日期。我需要得到减法的结果(Today_date - COLUMN_DATE = COLUMN_LAST)这是我的代码。显然,它包含一些错误。

    Calendar localCalendar = Calendar.getInstance(TimeZone.getDefault());
    Cursor cursor = mDB.query(DB_TABLE, new String[] {COLUMN_DATE} , null, null, null, null, null);
while(cursor.moveToNext())
{
    ContentValues cv = new ContentValues();
    cv.put(COLUMN_LAST, localCalendar.get(Calendar.DAY_OF_YEAR) - cursor.getInt( cursor.getColumnIndex(COLUMN_DATE) ));
    mDB.update(DB_TABLE, cv, COLUMN_ID + " = " + cursor.getPosition(), null);
}

我应该怎么做这件事才能工作?谢谢你的回答。

4

1 回答 1

0

您假设光标位置等于行 id,它可能不正确。当您更新行时,您应该传递 column_id 而不是光标位置。

    Calendar localCalendar = Calendar.getInstance(TimeZone.getDefault());
    Cursor cursor = mDB.query(DB_TABLE, new String[] {COLUMN_ID, COLUMN_DATE} , null, null, null, null, null);
    while(cursor.moveToNext())
    {
        ContentValues cv = new ContentValues();
        int columnId = cursor.getInt(0); // cause COLUMN_ID is 0th in projection above
        cv.put(COLUMN_LAST, localCalendar.get(Calendar.DAY_OF_YEAR) - cursor.getInt(1));
        mDB.update(DB_TABLE, cv, COLUMN_ID + " = ?" + id, new String[] {columnId});
    }

    // always close cursor
    cursor.close(); // you can use try-finally block
于 2013-08-23T11:59:45.980 回答