2011-01-01 10 views
1

私はこれを全く理解できません。私はしました:Javaでのモジュロ算術、Androidの問題

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では、これはカレンダーから取られます。 このプログラムは今日までうまくいきました。 1月1日。何が起こるかは、DBは、日付から取られたインデックスnumの文字列を検索します。問題は、このコードではDBではありません。 月1日には、当然、日= 1ヶ月= 0ですが、MOD 134の後、私は、LogCatの礼儀を取得:!

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

yep、obi-wanエラーです。毎日自分で作る。 –