【发布时间】:2019-12-29 11:23:15
【问题描述】:
我想在我的 Android 应用中以yy-MM-dd h:m:s 格式显示计数计时器
我尝试了什么: 我尝试操作 CountDownTimer 使其以相反的顺序工作。将间隔更改为 -1000 或每秒将 2000 毫秒添加到倒计时。两者都没有工作。 然后我想我应该使用 Chronometer 类。就我而言,标准天文台仅显示小时、分钟和秒。所以没有天,没有月,也没有年。 还有一件事
-
如果时间少于 1 分钟,那么计时器只显示秒数
00 秒
-
如果少于 1 小时,那么只有分钟和秒,那么格式应该是
00 分 00 秒
-
如果少于 1 天,则只有小时、分钟和秒
00 小时 00 分 00 秒
-
如果少于 1 个月,则仅显示天、小时、分钟、秒
0 天 00 小时 00 分钟 00 秒
-
如果少于一年,则只显示月、日、小时、分钟、秒
0 个月 0 天 00 小时 00 分钟 00 秒
-
如果超过一年,则显示如下
0 年 0 个月 0 天 00 小时 00 分钟 00 秒
我写的代码
chronometer.setFormat("%s");
chronometer.setBase(SystemClock.elapsedRealtime());
chronometer.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() {
@Override
public void onChronometerTick(Chronometer chronometer) {
String cTextSize = chronometer.getText().toString();
if ((SystemClock.elapsedRealtime() - chronometer.getBase()) < 60000) {
chronometer.setText(cTextSize.substring(3,5)+" sec");
}
else if (((SystemClock.elapsedRealtime() - chronometer.getBase()) >= 60000) && ((SystemClock.elapsedRealtime() - chronometer.getBase()) < 3600000)){
chronometer.setText(cTextSize.substring(0,2)+" mins "+cTextSize.substring(3,5)+" sec");
}
else if (((SystemClock.elapsedRealtime() - chronometer.getBase()) >= 3600000) && ((SystemClock.elapsedRealtime() - chronometer.getBase()) < 86400000)){
chronometer.setText(cTextSize.substring(0,2)+" hours "+cTextSize.substring(3,5)+" mins "+cTextSize.substring(6,8)+" sec");
}
}
这里的代码运行良好,直到显示小时,但现在我想如果小时大于 24,它显示 1 天而不是 25 小时
您的帮助将不胜感激,如果您不知道答案,请不要投反对票
【问题讨论】:
标签: android chronometer