这篇文章主要介绍了详解java倒计时三种简单实现方式,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

写完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, 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 + "秒");

}

}, 0, 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()结果:

java 倒计时_Java倒计时实现的三种简单方式相关推荐

  1. python中字符串输出的三种简单方式

    python字符串输出的三种简单方式 第一种: 用'+'号进行字符串的拼接,但只限于字符串,不能进行其他类型的拼接.但是可以进行强制类型转换(字符串的强制转换为str(名字)),再用加号进行拼接. 比 ...

  2. java中map的遍历方法_Java中Map的三种遍历方式

    集合中的三种遍历方式,如下代码: import java.util.Collection; import java.util.HashMap; import java.util.Iterator; i ...

  3. java定义数组_java中数组的三种定义方式_java中数组的定义及使用方法(推荐)...

    java中数组的三种定义方式 java中,数组是一种很常用的工具,今天我们来说说数组怎么定义 [java] view plain copy /** * 数组的三种定义方法 * 1.数组类型[] 数组名 ...

  4. java jndi tomcat_tomcat下jndi的三种配置方式

    Java命名和目录接口(the Java naming and directory interface,JNDI)是一组在Java应用中访问命名和目录服务的API.命名服务将名称和对象联系起来,使得读 ...

  5. java三态_Java中对象的三种状态

    Java中的对象的三种状态是和垃圾回收紧密相关的,因此有必要深究. 状态一:可触及态:从根节点开始,可以搜索到这个对象,也就是可以访问到这个对象,也有人将其称为可达状态. 状态二:可复活态:从根节点开 ...

  6. 生产者消费者 java实现_Java生产者消费者的三种实现

    Java生产者消费者是最基础的线程同步问题,java岗面试中还是很容易遇到的,之前没写过多线程的代码,面试中被问到很尬啊,面完回来恶补下.在网上查到大概有5种生产者消费者的写法,分别如下. 用sync ...

  7. java如何实现线程_java中线程的三种实现方式

    packagecom.four.day01;importjava.util.concurrent.Callable;importjava.util.concurrent.ExecutionExcept ...

  8. java匿名内部类_java中匿名内部类的两种实现方式

    使用匿名内部类课使代码更加简洁.紧凑,模块化程度更高.内部类能够访问外部内的一切成员变量和方法,包括私有的,而实现接口或继承类做不到.然而这个不是我说的重点,我说的很简单,就是匿名内部类的两种实现方式 ...

  9. java arraylist 遍历_java集合ArrayList的三种遍历方式

    ArrayList ArrayList 使用连续的内存单元存储数据元素,是一个其容量能够动态增长的动态数组. 当添加或删除数据元素时(最后位置除外),ArrayList 需要移动其被添加(或删除)元素 ...

  10. java实现定时任务 schedule_Java定时任务的三种实现方式

    前言 现代的应用程序早已不是以前的那些由简单的增删改查拼凑而成的程序了,高复杂性早已是标配,而任务的定时调度与执行也是对程序的基本要求了. 很多业务需求的实现都离不开定时任务,例如,每月一号,移动将清 ...

最新文章

  1. javascript解析json
  2. spark算子_Spark常用算子
  3. 说AI没有创造性?现在它都能创作鬼畜音乐了
  4. java类接口的区别_【Java基础】java接口和类的区别-瑶瑶吖的回答
  5. 2019年公务员计算机(大类)类,2019年中国证监会参照公务员法管理专业科目考试大纲 (计算机类)...
  6. JStorm/Storm源码解读(二)--启动篇
  7. 【代码笔记】iOS-removeFromSuper
  8. LVS负载均衡下session共享的实现方式-持久化连接
  9. linux字符驱动之自动创建设备节点
  10. 前端学习(1647):前端系列实战课程之选项卡实现js思路
  11. 【算法学习】B-Tree编程实现(C++模板类封装)
  12. MySQL数据类型不一致_数据类型不一致导致的SQL不走索引
  13. Python面向对象程序设计中对象析构方法的调用时机
  14. 51Nod-1384 全排列【全排列】
  15. 【技术帖】Apache Kylin 高级设置:层级维度(Hierarchy Dimension)原理
  16. 服务器linux命令aux,Linux查看所有进程ps -aux命令介绍
  17. java游戏走到边缘_java-3D对象相遇的边缘和毛刺不均匀
  18. qq实验报告c语言,C语言实现QQ密码大盗(没试验过,下回验证一下)
  19. selenium.webdriver网页无法正常打开的问题
  20. Ubuntu 18.04 桌面美化全攻略

热门文章

  1. 保姆级win7下配置虚拟机-安装Ubuntu20.04
  2. pwnable tw Starbound writeup
  3. 查询mysql 的内存使用_如何查看MySQL内存使用情况
  4. Wireshark抓取VLAN包
  5. C. Alternating Sum(数论——等比数列公式与变换)
  6. 大连考研英语培训百家外语考研英语一如何准备?
  7. php获取今天星期几,PHP获取星期几的常用方法小结
  8. git bash 下backspace键无法使用的问题
  9. Centos下ftp的安装和配置
  10. Transformer中Relative Position Bias以及DropPath细节梳理