有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在进度/搜索栏中显示日期/时间范围内的进度

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

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

它应该是这样的:


共 (1) 个答案

  1. # 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()
    }
    

    它有三种不同的情况:

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

    然后,你可以把这个分数乘以100得到百分比:

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