使用日历在每个午夜重置计算的步数
Using Calendar to reset counted steps every midnight
我正在构建一个 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));
输出是
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
谢谢。
首先你必须得到今天的日期:
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);
我正在构建一个 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));
输出是
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
谢谢。
首先你必须得到今天的日期:
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);