栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

timer java countdown

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

timer java countdown

说明: 碰到一个需求,从后端返回一个字符串"01:02",这代表1小时2分钟,需要根据返回的字段在前端展示一个倒计时的功能,用java写了一个,利用线程和时间换算实现。

steo1: java

package com.example.demo2;

import com.example.demo2.entity.*;
import org.apache.tomcat.util.buf.StringUtils;
import org.springframework.boot.test.context.SpringBootTest;

import java.text.*;
import java.util.*;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.stream.Collectors;

import static java.util.concurrent.TimeUnit.SECONDS;

import java.time.*;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
import java.time.temporal.TemporalAdjusters;
import java.util.Date;

import java.text.SimpleDateFormat;
import java.util.Date;

@SpringBootTest(classes = {Demo2Application.class}, properties = {"application.properties"})
public class Test {
    @org.junit.Test
    public void test() throws ParseException {
        int hour = 1;   //设置倒计时的 时和分
        int minute = 2;
        long c2 = minute * 60 * 1000 + hour * 60 * 60 * 1000;
        System.out.println(c2);
        String a = formatTime(c2);
        System.out.println(a);
        while (true) {
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            c2 = c2 - 1000;
            System.out.println(formatTime(c2));
        }

    }

    public static String formatTime(Long ms) {
        Integer ss = 1000;
        Integer mi = ss * 60;
        Integer hh = mi * 60;
        Integer dd = hh * 24;
        Long day = ms / dd;
        Long hour = (ms - day * dd) / hh;
        Long minute = (ms - day * dd - hour * hh) / mi;
        Long second = (ms - day * dd - hour * hh - minute * mi) / ss;
        Long milliSecond = ms - day * dd - hour * hh - minute * mi - second * ss;
        StringBuffer sb = new StringBuffer();
        if (day > 0) {
            sb.append(String.format("%02d",day) + "天");
        }
        if (hour >= 0) {
            sb.append(String.format("%02d",hour) + ":");
        }
        if (minute >= 0) {
            sb.append(String.format("%02d",minute) + ":");
        }
        if (second >= 0) {
            sb.append(String.format("%02d",second));
        }
        if (milliSecond > 0) {
            sb.append(milliSecond + "毫秒");
        }
        return sb.toString();
    }
}

step2: run

00:01:00
00:00:59
00:00:58
00:00:57
00:00:56
00:00:55
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1035569.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号