`
jt5
  • 浏览: 31460 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类

java倒计时

阅读更多
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Scanner;
import java.util.Timer;
import java.util.TimerTask;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class CountDown extends TimerTask {
	private static long targetInMill;
	private static boolean flag = true;
	private static Timer timer;

	public static void main(String[] args) {
		init();
		CountDown cd = new CountDown();
		long delay = 1000;
		timer = new Timer();
		timer.schedule(cd, 0, delay);
	}

	// 设定目标时间
	private static void init() {
		Scanner sc = new Scanner(System.in);
		try {
			//输入时间
			String targetTime = sc.nextLine();
			//验证时间
			Pattern p = Pattern
					.compile("^(19|20)\\d\\d[-/.]((0[1-9])|([1-9])|(1[0-2]))[-/.](([0-2][1-9])|([1-2]0)|(3[0-1])|([1-9])) (([0-1]\\d)|([1-9])|(2[0-3]|(0))):(([0-5]\\d)|([1-9])):(([0-5]\\d)|([1-9]))$");
			Matcher m = p.matcher(targetTime);
			if (!m.matches()) {
				throw new Exception("输入日期格式不对");
			}
			
			int year, month, day, hour, minute, second;

			String date = targetTime.split(" ")[0];
			String time = targetTime.split(" ")[1];

			year = Integer.valueOf(date.split("-")[0]);
			month = Integer.valueOf(date.split("-")[1]);
			day = Integer.valueOf(date.split("-")[2]);

			hour = Integer.valueOf(time.split(":")[0]);
			minute = Integer.valueOf(time.split(":")[1]);
			second = Integer.valueOf(time.split(":")[2]);

			Calendar target = new GregorianCalendar(year, month - 1, day, hour,
					minute, second);
			//将目标时间化成毫秒
			targetInMill = target.getTimeInMillis();
			
		} catch (Exception e) {
			e.printStackTrace();
			System.err.println(e.toString());
		}
	}

	// 开始计时
	public void run() {
		try {
			Calendar today = new GregorianCalendar();
			//将当前时间化成毫秒
			long todayInMill = today.getTimeInMillis();
			//获取时间差
			long dd = targetInMill - todayInMill;
			//将当前时间化成毫秒
			long dis = dd / 1000;

			String d;
			int day = (int) (dis / (3600 * 24));
			int hour = (int) (dis % (3600 * 24) / 3600);
			int min = (int) (dis % 3600 / 60);
			int sec = (int) (dis % 60);
			if (day < 10)
				d = " " + day;
			else if (day >= 10 && day < 100)
				d = " " + day;
			else
				d = day + "";
			String s = d + " 天 " + Integer.valueOf(hour) + " 小时 "
					+ Integer.valueOf(min) + " 分 " + Integer.valueOf(sec)
					+ " 秒";
			System.out.println(s);
			//如果时间差是负值,则计数器关闭
			if (dd <= 0) {
				System.out.println("时间到");
				flag = false;
			}
		} catch (Exception e) {
			System.err.println(e.toString());
		}finally{
			while(!flag){
				timer.cancel();
			}
		}
	}
}
分享到:
评论

相关推荐

    java倒计时源代码

    Java倒计时源代码是一种基于Java编程语言实现的简单应用程序,用于显示从特定时间开始的倒计时。这个程序特别适合那些需要定时提醒或者计时功能的场景,比如考试倒计时、活动倒计时等。它包含了源代码文件以及打包好...

    java倒计时器代码

    Java 倒计时器代码详解 Java 倒计时器代码是利用 Java 语言编写的一种倒计时器程序,主要实现倒计时的功能。下面是对 Java 倒计时器代码的详细解释: 一、Java 倒计时器代码结构 Java 倒计时器代码主要由两个类...

    简单的JAVA倒计时程序

    Java倒计时程序设计与实现 Java倒计时程序是指使用Java语言编写的倒计时应用程序,能够实时显示倒计时信息。下面是关于Java倒计时程序的设计与实现细节。 一、倒计时程序的设计思想 倒计时程序的设计思想是基于...

    JAVA倒计时器

    【JAVA倒计时器】是一种基于JAVA编程语言实现的简单计时工具,它主要用于实现从预设时间开始向后计算的倒计时功能。对于初学者来说,这是一个很好的实践项目,因为它涉及到基本的用户界面设计、事件处理以及时间管理...

    java倒计时器

    在Java编程语言中,创建一个倒计时器是一...综上所述,这个"java倒计时器"项目涵盖了多方面的Java技术,包括时间处理、线程编程、用户输入、音频播放和GUI交互。它展示了Java在构建实用应用程序中的灵活性和强大功能。

    JAVA倒计时器练习程序

    本项目名为"JAVA倒计时器练习程序",它提供了一个基础的实现,能够进行多组倒计时,这对于初学者来说是一个很好的实践和学习机会。 首先,我们要理解Java编程的基础。Java是一种面向对象的编程语言,由Sun ...

    Java倒计时

    ### Java倒计时程序解析与实现 在IT领域,尤其是软件开发中,倒计时功能是一种常见的需求,常用于各种应用程序如活动计时、赛事倒数等场景。本篇文章将深入解析一个基于Java语言编写的倒计时程序,探讨其核心逻辑、...

    java-applet_timeCount.rar_applet_java applet ti_java 倒计时

    Java Applet是一个嵌入在网页中的小程序,由Java语言编写,可以提供丰富的交互性功能,如本例中的倒计时有声定时器。这个特定的Java Applet项目名为"TimeCount",它不仅实现了基本的倒计时功能,还特别加入了声音...

    Java 倒计时

    以下是关于Java倒计时的相关知识点: 1. **基本概念**: - **线程(Thread)**:倒计时通常需要在后台运行,不影响主线程的执行,因此涉及到多线程。Java中的Thread类或Runnable接口可以用来创建和管理线程。 - *...

    JAVA编写的倒计时程序

    1.以时/分/秒为单位设定倒计时范围。 2.在倒计时过程中可以停止。 3.设定的时间到时弹出窗口提示并播放音乐,可在提示窗口里选择是否停止音乐或者听完整首歌。 4.音乐可以自己换,但只支持.au格式的,替换文件夹中的...

    java倒计时数据

    从给定的文件信息来看,这段代码主要涉及的是使用Java Swing库来创建一个图形用户界面(GUI),用于显示倒计时功能。以下是对标题、描述、标签和部分内容中提到的知识点的详细解释: ### Java Swing库 Java Swing是...

    详解java倒计时三种简单实现方式

    java倒计时三种简单实现方式 Java中的倒计时功能是非常常见的需求,例如倒计时式的游戏、倒计时式的广告页等等。今天,小编将为大家介绍三种简单的Java倒计时实现方式,供大家参考和学习。 方式一:给定时长倒计时...

    Java倒计时三种实现方式代码实例

    Java 倒计时三种实现方式代码实例 Java 倒计时是指在 Java 编程语言中实现倒计时功能的各种方法和技术。倒计时是指从当前时间到达预设时间的一种计时方式,常用于计时器、定时器、倒计时器等应用场景中。下面将...

    java 编写的倒计时程序

    【Java编写的倒计时程序】是一个典型的编程实践案例,主要展示了如何在Java环境中实现一个功能性的倒计时器。这个程序可能包含了基础的计时逻辑、用户界面以及可能的事件处理机制。以下是对该程序相关知识点的详细...

    用java写了个倒计时

    用java写了个简单的倒计时,也是刚学的,前台的东西接触不多

    倒计时器 java

    【倒计时器 Java】是基于Java编程语言开发的一个简单实用的小程序,它主要用于实现时间的倒计时功能。在编程领域,倒计时计时器是一个常见的应用场景,例如用于考试系统、活动启动预告或者定时任务等。这个程序对...

    java倒计时源代码 原创

    System.out.println("下班倒计时开始..."); timer.schedule(new MyTask(date),0,1000); } //ps:如有不懂请联系作者!解压后是两个java类,自己创建java项目,把两个类拷贝进去,修改以下包路径即可

Global site tag (gtag.js) - Google Analytics