2011-01-01 3 views
1

나는 이것을 전혀 이해할 수 없다. 내가 한 :자바에서의 모듈로 산법, 안드로이드 문제

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); 

개월는 오늘날의 월, 일이 (즉, 12 월 31 일 = 12,31)는 오늘입니다. ANdroid에서는 이것이 CALENDAR에서 가져온 것입니다. 이 프로그램은 오늘까지 제대로 작동했습니다. 1 월 1 일. DB에서 날짜에서 가져온 인덱스 num 문자열을 검색합니다. 문제는이 코드에서 DB가 아닙니다. 월 1 일, 월 = 0 일 = 1, 내가 얻을 자연스럽게,하지만 모드 (134) 후, 로그 캣의 의례 :

01-01 12:07:38.554: VERBOSE/variables(6917): -29,0,1 

그러나 1mod134 = -29이!. 나는 -29가 어디서 왔는지 이해할 수 없다.

답변

2

month0 일 때, (month-1)*30-30입니다.

2

죄송합니다. 나는 그것을 게시 한 후 거의 즉시 알아 냈다. 월 = 0, 그래서 월 -1 = -1. 나는 1에서 시작하여 12에서 0으로되지 않을 것이라고 생각했다. 아무도 시간 낭비를해서 유감스럽게 생각한다!

+0

예, 오비완 에러. 매일 나 자신을 만들어라. –