Javaのモジュロ演算、Androidの問題

android date java modulo
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では、これはCALENDARから取得されます。 現在、このプログラムは今日まで正常に機能していました。 1月1日 起こるのは、日付から取得されたインデックスnumの文字列を検索するDBです。 問題はDBではなく、このコードにあります。 1月1日は月= 0、日= 1です。しかし、mod 134の後、LogCatの厚意によります:

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

しかし、1mod134!= -29。 -29がどこから来たのかわかりません。

  1  0


ベストアンサー

ごめんなさい。 投稿してほぼすぐにわかりました。 月= 0、したがって月-1 = -1 月は1から始まり、0から11ではなく12に行くと想定しました。 誰かの時間を無駄にしてすみません!

2


「月」が「0」の場合、「(月-1)* 30」は「-30」です。

2


タイトルとURLをコピーしました