使用日历每隔午夜重置计算的步数

时间:2015-05-15 08:32:18

标签: java android calendar

我正在构建一个Android应用程序,它计算用户的步骤。目的是计算从前一天午夜到每天午夜的步数。这就是我设置Calendar对象的方法。这真是一个Java问题。

Calendar cal = Calendar.getInstance();
    Date now = new Date();
    cal.setTime(now);
    long endTime = cal.getTimeInMillis();
    cal.add(Calendar.DAY_OF_WEEK, -1);
    long startTime = cal.getTimeInMillis();

    SimpleDateFormat dateFormat = new SimpleDateFormat(DATE_FORMAT);
    Log.i(TAG, "Range Start: " + dateFormat.format(startTime));
    Log.i(TAG, "Range End: " + dateFormat.format(endTime));

outpup是

Range Start: 2015.05.14 09:25:13
Range End: 2015.05.15 09:25:13

所以你可以看到输出。我算上那个时期之间的步数。如果我在几分钟后输入,日期格式将如下所示

Range Start: 2015.05.14 09:27:07
Range End: 2015.05.15 09:27:07

我希望它像

 Range Start: 2015.05.14 00:00:00
 Range End: 2015.05.15 00:00:00

感谢。

1 个答案:

答案 0 :(得分:1)

首先,你必须得到今天的日期:

Calendar date = new GregorianCalendar();

将此日期设置为今晚(并存储它!):

date.set(Calendar.HOUR_OF_DAY, 0);
date.set(Calendar.MINUTE, 0);
date.set(Calendar.SECOND, 0);
date.set(Calendar.MILLISECOND, 0);

当你有午夜时,只需添加+1即可获得明天的

date.add(Calendar.DAY_OF_MONTH, 1);