Я не могу понять это вообще. Я сделал:
int num = ((month-1)*30+day)%134;
//a,b,c are just for the Log
String a = String.valueOf(num);
String b = String.valueOf(month);
String c = String.valueOf(day);
Log.v("variables",a+","+b+","+c);
num ++;// don't want zero
String stringnum = String.valueOf(num);
Log.v("Index",stringnum);
месяц - это сегодняшний день, сегодня день (т.е. 31 декабря = 12,31). В ANdroid это берется из CALENDAR. Теперь эта программа отлично работает до сегодняшнего дня. 1 января. Что происходит, так это то, что DB ищет строку индекса num, взятую с даты. Проблема не в DB, ее в этом коде. 1 января - месяц = 0, день = 1, естественно, но после mod 134 я получаю любезность LogCat:
01-01 12:07:38.554: VERBOSE/variables(6917): -29,0,1
Но 1mod134!= -29. Я не могу понять, откуда происходит -29.
Если month
- 0
, (month-1)*30
- -30
.
К сожалению. Я понял это почти сразу после публикации. месяц = 0, поэтому месяц -1 = -1. Я предположил, что месяц начнется с 1 и дойдет до 12, а не с нуля до 11. Извините за то, что потратил впустую никого!