写完js倒计时,突然想用java实现倒计时,写了三种实现方式

一:设置时长的倒计时;

二:设置时间戳的倒计时;

三:使用java.util.Timer类实现的时间戳倒计时

代码如下:

package timer;

import java.util.Calendar;

import java.util.Date;

import java.util.Timer;

import java.util.TimerTask;

/**

* java演示倒计时

*

*/

public class TimeTest {

public static int time = 60 * 60 * 60;

public static Calendar c;

public static long endTime;

public static Date date;

public static long startTime;

public static long midTime;

public static void main(String[] args) {

c = Calendar.getInstance();

c.set(2017,4,17,0);// 注意月份的设置,0-11表示1-12月

// c.set(Calendar.YEAR,2017);

// c.set(Calendar.MONTH,4);

// c.set(Calendar.DAY_OF_MONTH,17);

// c.set(Calendar.HOUR_OF_DAY,0);

// c.set(Calendar.MINUTE,0);

// c.set(Calendar.SECOND,0);

endTime = c.getTimeInMillis();

date = new Date();

startTime = date.getTime();

midTime = (endTime - startTime) / 1000;

// time1();//方式一

time2();// 方式二

// time3();//方式三

}

/**

* 方式三: 使用java.util.Timer类进行倒计时

*/

private static void time3() {

Timer timer = new Timer();

timer.schedule(new TimerTask() {

public void run() {

midTime--;

long hh = midTime / 60 / 60 % 60;

long mm = midTime / 60 % 60;

long ss = midTime % 60;

System.out.println("还剩" + hh + "小时" + mm + "分钟" + ss + "秒");

}

},1000);

}

/**

* 方式二: 设定时间戳,倒计时

*/

private static void time2() {

while (midTime > 0) {

midTime--;

long hh = midTime / 60 / 60 % 60;

long mm = midTime / 60 % 60;

long ss = midTime % 60;

System.out.println("还剩" + hh + "小时" + mm + "分钟" + ss + "秒");

try {

Thread.sleep(1000);

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}

/**

* 方式一: 给定时长倒计时

*/

private static void time1() {

while (time > 0) {

time--;

try {

Thread.sleep(1000);

int hh = time / 60 / 60 % 60;

int mm = time / 60 % 60;

int ss = time % 60;

System.out.println("还剩" + hh + "小时" + mm + "分钟" + ss + "秒");

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}

}

运行结果:

time1()结果:

time2()结果:

time3()结果:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

如您喜欢交流学习经验,点击链接加入交流1群:1065694478(已满)交流2群:163560250

java怎么倒计时_详解java倒计时三种简单实现方式相关推荐

  1. python什么是可变参数_详解Python的三种可变参数

    可变参数 可变参数应该最简单,在C/C++和Java等语言中都有,就是用*号来表示,例如 def testArg(*arg) 你可以传入任意多个元素(包括0)到参数中,在函数内部会自动认为是一个元组或 ...

  2. python中什么是可变参数_详解Python的三种可变参数

    详解Python的三种可变参数 可变参数 可变参数应该最简单,在C/C++和Java等语言中都有,就是用*号来表示,例如 def testArg(*arg) 你可以传入任意多个元素(包括0)到参数中, ...

  3. java 引用传递_详解java的值传递、地址传递、引用传递

    详解java的值传递.地址传递.引用传递 一直来觉得对值传递和地址传递了解的很清楚,刚才在开源中国上看到一篇帖子介绍了java中的值传递和地址传递,看完后感受颇深.下边总结下以便更容易理解. 按照以前 ...

  4. java内部格式_详解java内部类的访问格式和规则

    详解java内部类的访问格式和规则 1.内部类的定义 定义一个类来描述事物,但是这个事物其中可能还有事物,这时候在类中再定义类来描述. 2.内部类访问规则 ①内部类可以直接访问外部类中的成员,包括私有 ...

  5. java comparator相等_详解Java中Comparable和Comparator接口的区别

    详解Java中Comparable和Comparator接口的区别 发布于 2020-7-20| 复制链接 摘记: 详解Java中Comparable和Comparator接口的区别本文要来详细分析一 ...

  6. python java混合编程_详解java调用python的几种用法(看这篇就够了)

    java调用python的几种用法如下: 在java类中直接执行python语句 在java类中直接调用本地python脚本 使用Runtime.getRuntime()执行python脚本文件(推荐 ...

  7. Java implement意思_详解JAVA中implement和extends的区别

    详解JAVA中implement和extends的区别 发布于 2020-4-14| 复制链接 摘记: 详解JAVA中implement和extends的区别extends是继承父类,只要那个类不是声 ...

  8. java sleep唤醒_详解Java中的线程让步yield()与线程休眠sleep()方法

    Java中的线程让步会让线程让出优先级,而休眠则会让线程进入阻塞状态等待被唤醒,这里我们对比线程等待的wait()方法,来详解Java中的线程让步yield()与线程休眠sleep()方法 线程让步: ...

  9. java runnable 异常_详解Java中多线程异常捕获Runnable的实现

    详解Java中多线程异常捕获Runnable的实现 1.背景: Java 多线程异常不向主线程抛,自己处理,外部捕获不了异常.所以要实现主线程对子线程异常的捕获. 2.工具: 实现Runnable接口 ...

  10. java 代码块_详解java中的四种代码块

    在java中用{}括起来的称为代码块,代码块可分为以下四种: 一.简介 1.普通代码块: 类中方法的方法体 2.构造代码块: 构造块会在创建对象时被调用,每次创建时都会被调用,优先于类构造函数执行. ...

最新文章

  1. Linux系统监测-命令集
  2. 使用Python增加csdn的访问量
  3. 2021年 第13届 全国大学生数学竞赛 初赛(非数学类)试题详细解答
  4. php短信接口加密_PHP短信接口、PHP短信验证码接口源码
  5. (摘)Excel 2007查询操作中的函数应用
  6. CentOS安装glibc-2.14
  7. FireFox与IE的兼容
  8. 用户画像有什么用?怎样用?6个场景案例给你讲明白
  9. 若依使用undertow来替代tomcat容器
  10. SignalR主动通知订阅者示例
  11. 2018-2-13-win10-UWP-RSS阅读器
  12. 地市级公安局实战通信指挥调度方案
  13. Android10.0 startService启动过程
  14. day06 Elasticsearch搜索引擎2
  15. Win10QQ和QQ音乐可以正常使用,但网页无法打开,并报错DNS_PROBE_POSSIBLE的解决方法
  16. 【SLAM学习】(二)相机原理
  17. express 获取ip地址,并获取ip对应的城市名
  18. iQOO Neo5S手机搭载Pixelworks升级版处理器;彩色星球科技联合费城76人开启NBA合作模式 | 全球TMT...
  19. python编程 | pdf转excel的python方法
  20. 客户通道短信平台开发—移动云短信系统

热门文章

  1. “完美”解决微信小程序购物车抛物动画,在连续点击时出现计算错误问题,定时器停不下来。
  2. 欠拟合和过拟合的一般解决方法
  3. C#Winform频繁刷新导致界面闪烁解决方法
  4. 推送后更改git commit消息(假设没有人从远程拉出)
  5. 删除Chrome自动完成功能的输入背景色?
  6. 使用HTML5 / Canvas / JavaScript拍摄浏览器内屏幕截图
  7. 如何列出引用SQL Server中给定表的所有外键?
  8. 如何从字符串生成流?
  9. Java实现邮箱验发送证码、代码示例【qq邮箱】
  10. python引用参数在哪里_参数在Python中是否通过引用传递