Java中的Modulo算法,Android问题

时间:2011-01-01 03:17:21

标签: java android date modulo

我完全无法解决这个问题。我做了:

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搜索从日期获取的索引号字符串。问题不在于DB,它在此代码中。 1月1日是月= 0,天= 1,当然,但是在我得到mod 134之后,由LogCat提供:

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

但是1mod134!= -29。我无法理解-29来自何处。

2 个答案:

答案 0 :(得分:2)

对不起。我发布后几乎立刻就知道了。月= 0,所以月-1 = -1。我假设一个月从1开始到12,而不是从零到11。抱歉浪费任何人的时间!

答案 1 :(得分:2)

month0时,(month-1)*30-30