设置闹钟时间的有趣错误

时间:2013-12-06 13:41:23

标签: android time android-alarms

我创建了一个提醒应用,它会在固定日期前“n”天发出通知。 在尝试该程序时,我遇到了一个有趣的错误。我已经制作了代码,如果“第n天”在当前时间之前,警报就不会设置。

然而,代码中的某处存在错误。如果我为今天(12月6日)设置了闹钟,则只有n = 0才能设置闹钟,但是如果我输入数字25到50,则闹钟也会设置。如果我设置n到25闹钟设置为31th dec并且如果n设置为50警报设置为今天,即12月6日。

我用来减去时间的代码是:

Long i = c.getTimeInMillis() - n*24*60*60*1000;
c1.setTimeInMillis(i);

  • i n = 0的值为 1386315000678
  • i n = 50的值为 1386289967974

CurrentTimeInMillis 1386337498776

代码有问题吗?或者这与android中的时间如何转换为毫秒有关?

1 个答案:

答案 0 :(得分:0)

我用过:

    c.add(Calendar.DAY_OF_YEAR, 0-n);
c1.setTimeInMillis(c.getTimeInMillis());
    c.add(Calendar.DAY_OF_YEAR, n);

这不会给出有趣的无法解释的错误