【问题标题】:How to show progress in Date/time range in progress/seek bar android如何在日期/时间范围内显示进度/搜索栏android
【发布时间】:2020-07-21 11:42:45
【问题描述】:

我需要显示进度条时间流逝。我有开始日期/时间和结束日期/时间,所以应该显示开始/日期/时间和结束/日期/时间之间的进度。请有这方面经验的人帮忙。

start========(current time)=======end 

它应该是这样的:

【问题讨论】:

  • 尝试计算两个日期之间的毫秒数,并将该结果设置为进度条。如果您需要不断更新进度,您可能还需要一个计时器。

标签: java android kotlin android-progressbar android-seekbar


【解决方案1】:

你可以使用这个简单的小功能:

fun progress(start: LocalDateTime,
             end: LocalDateTime,
             now: LocalDateTime = LocalDateTime.now()): Double = when {
    now <= start -> 0.0
    now >= end -> 1.0
    else -> start.until(now, ChronoUnit.SECONDS) /
            start.until(end, ChronoUnit.SECONDS).toDouble()
}

它有3种不同的情况:

  1. now 之前或等于 start 则进度为 0
  2. now 等于或等于end 则进度为1
  3. 计算(now - start) / (end - start) 给出0-1 范围内的分数

然后您可以取该分数并乘以 100 以获得百分比:

val progress = progress(start, end)
val percentage = (progress * 100).roundToInt()

【讨论】:

    猜你喜欢
    • 2019-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-28
    • 2017-10-25
    • 2012-02-26
    相关资源
    最近更新 更多