Java 实现倒计时功能(由秒计算天、小时、分钟、秒)

有时候会要求实现这样一个需求:

天、小时、分钟、秒的数值都是隔开的,服务器端只返回一个时间戳长度。

以下就是我的实现方案,力求减少对象生成、减小计算量:

import java.util.Timer;
import java.util.TimerTask;
public class CountDownUtils {
 private static long day = 0;
 private static long hour = 0;
 private static long minute = 0;
 private static long second = 0;
 private static boolean dayNotAlready = false;
 private static boolean hourNotAlready = false;
 private static boolean minuteNotAlready = false;
 private static boolean secondNotAlready = false;
 public static void main(String[] args) {
 long totalSeconds = 60 * 60 * 24 * 34 + 21;
 initData(totalSeconds);
 new Timer().schedule(new TimerTask() {
  public void run() {
  if (secondNotAlready) {
   startCount();
  } else {
   cancel();
  }
  }
 }, 0, 1000);
 }
 /**
 * 初始化赋值
 *
 * @param totalSeconds
 */
 private static void initData(long totalSeconds) {
 resetData();
 if (totalSeconds > 0) {
  secondNotAlready = true;
  second = totalSeconds;
  if (second >= 60) {
  minuteNotAlready = true;
  minute = second / 60;
  second = second % 60;
  if (minute >= 60) {
   hourNotAlready = true;
   hour = minute / 60;
   minute = minute % 60;
   if (hour > 24) {
   dayNotAlready = true;
   day = hour / 24;
   hour = hour % 24;
   }
  }
  }
 }
 System.out.println("初始格式化后——>" + day + "天" + hour + "小时" + minute
  + "分钟" + second + "秒");
 }
 private static void resetData() {
 day = 0;
 hour = 0;
 minute = 0;
 second = 0;
 dayNotAlready = false;
 hourNotAlready = false;
 minuteNotAlready = false;
 secondNotAlready = false;
 }
 /**
 * 计算各个值的变动
 *
 */
 public static void startCount() {
 if (secondNotAlready) {
  if (second > 0) {
  second--;
  if (second == 0 && !minuteNotAlready) {
   secondNotAlready = false;
  }
  } else {
  if (minuteNotAlready) {
   if (minute > 0) {
   minute--;
   second = 59;
   if (minute == 0 && !hourNotAlready) {
    minuteNotAlready = false;
   }
   } else {
   if (hourNotAlready) {
    if (hour > 0) {
    hour--;
    minute = 59;
    second = 59;
    if (hour == 0 && !dayNotAlready) {
     hourNotAlready = false;
    }
    } else {
    if (dayNotAlready) {
     day--;
     hour = 23;
     minute = 59;
     second = 59;
     if (day == 0) {
     dayNotAlready = false;
     }
    }
    }
   }
   }
  }
  }
 }
 System.out.println("距离截止日期还有——>" + day + "天" + hour + "小时" + minute
  + "分钟" + second + "秒");
 }
} 

总结

以上所述是小编给大家介绍的Java 实现倒计时功能(由秒计算天、小时、分钟、秒),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • Java实现的简单数字时钟功能示例

    本文实例讲述了Java实现的简单数字时钟功能.分享给大家供大家参考,具体如下: 应用名称:Java数字时钟 用到的知识:Java GUI编程,线程 开发环境:win8+eclipse+jdk1.8 功能说明:可以显示当前系统的年月日.星期以及准确时间,并实时更新显示. 效果图: 源代码: import javax.swing.JFrame; import javax.swing.JPanel; import java.awt.BorderLayout; import javax.swing.JL

  • java实现动态时钟并设置闹钟功能

    本文实例为大家分享了java实现动态时钟设置闹钟功能,供大家参考,具体内容如下 显示如上图所示的动态时钟,并且可以设置闹钟,播放mp3. 首先用到的是时钟(Timer)和日历(Calendar)得到系统的当前时间. 代码如下: import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.geom.Ellipse2D; import java.awt.geom.Line2D; import java.io.Buffer

  • Java编程小实例—数字时钟的实现代码示例

    本文的实例是Java编程实现一个数字时钟,代码测试可用,练练手吧.代码如下: package me.socketthread; import java.awt.Color; import java.awt.Dimension; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import java.util.Calendar; import java.util.GregorianCalenda

  • java多线程编程制作电子时钟

    模拟一个电子时钟,它可以在任何时候被启动或者停止,并可以独立的运行. 1.定义一个Clock类.它继承Label类,并实现Runnable接口.这个类中有一个Thread类型的clocker域,以及start()和run()方法.在run()方法中,每隔一秒就把系统时间显示为label的文本. class Clock extends Label implements Runnable { //定义Thread类型的clocker域 public Thread clocker=null; publ

  • java实现的小时钟示例分享

    复制代码 代码如下: //package com.clock; import java.awt.BasicStroke;import java.awt.Color;import java.awt.Font;import java.awt.Graphics;import java.awt.Graphics2D;import java.awt.Insets;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;i

  • java开发之闹钟的实现代码

    项目结构: 效果图一: 效果图二: 效果图三: 关于闹钟: 复制代码 代码如下: Alarm hongten v1.0 使用说明: 此文件夹中包括:             src文件夹       存放图片和声音文件夹,使用程序的时候,请不要删除此文件夹             alarm.jar    主要的功能程序jar包(要求安装jdk1.5或以上版本)             ReadMe.txt     说明文档 1.菜单功能说明 文件-- >               上传铃声(

  • JS将时间秒转换成天小时分钟秒的字符串

    项目中需求是这样,接口返回的数据中时间单位为秒,但前端显示的时候需要更人性化的带有单位(天,小时,分钟,秒)的字符串: 转换函数如下: /** * 格式化秒 * @param int value 总秒数 * @return string result 格式化后的字符串 */ function formatSeconds(value) { var theTime = parseInt(value);// 需要转换的时间秒 var theTime1 = 0;// 分 var theTime2 = 0

  • vue js秒转天数小时分钟秒的实例代码

    具体代码如下所示: SecondToDate: function(msd) { var time =msd if (null != time && "" != time) { if (time > 60 && time < 60 * 60) { time = parseInt(time / 60.0) + "分钟" + parseInt((parseFloat(time / 60.0) - parseInt(time /

  • Java 实现倒计时功能(由秒计算天、小时、分钟、秒)

    有时候会要求实现这样一个需求: 天.小时.分钟.秒的数值都是隔开的,服务器端只返回一个时间戳长度. 以下就是我的实现方案,力求减少对象生成.减小计算量: import java.util.Timer; import java.util.TimerTask; public class CountDownUtils { private static long day = 0; private static long hour = 0; private static long minute = 0;

  • android实现倒计时功能(开始、暂停、0秒结束)

    本文实例为大家分享了android实现倒计时功能的具体代码,供大家参考,具体内容如下 [思路]:通过 timer 执行周期延时的任务,handler 中将计时信息更新,并在计时结束时结束 timer 的周期任务. - 在布局文件中添加一个TextView和Button控件,并在onCreate方法中获得到TextView和Button的id: xml布局代码: <Button android:id="@+id/button_start_timer" android:layout_

  • Android实现时间倒计时功能

    本文实例为大家分享了Android实现时间倒计时功能展示的具体代码,供大家参考,具体内容如下 效果展示 MainActivity(主页面代码) public class MainActivity extends Activity { private RelativeLayout countDown; // 倒计时 private TextView daysTv, hoursTv, minutesTv, secondsTv; private long mDay = 10; private long

  • php实时倒计时功能实现方法详解

    本文实例讲述了php实时倒计时功能实现方法.分享给大家供大家参考,具体如下: 这几天公司要做一个限时购物的功能.这就要做到倒计时,要有实时的倒计时. 要求: 1) 要有小时分钟秒的实时倒计时的显示 2)用户端修改日期时间不会影响到倒计时的正常显示(也就是以服务器时间为准) 其实这和很多的考试等系统的时间限制功能同样的要求. 解决思路: 1)总不能用ajax每秒都获取服务器时间吧. 所以实时倒计时一定要用javascript实现.这很简单.网上一大把的例子. 2)现在问题是解决用户端修改日期时间对

  • Android自定义Chronometer实现短信验证码秒表倒计时功能

    本文实例为大家分享了Chronometer实现倒计时功能,Android提供了实现按照秒计时的API,供大家参考,具体内容如下 一.自定义ChronometerView 继续自TextView 主要原理:先设置一个基准倒计时时间mBaseSeconds,内置handler 每隔1s发送一个空消息,mRemainSeconds--,同时刷新界面视图,回调给外部调用者,只到为零.外部调用者可通过start()/pause()/stop()来控制计时器的工作状态. 可以app中发送短信验证码的场景为例

  • python实现简单倒计时功能

    使用python实现简单倒计时exe,供大家参考,具体内容如下 使用tkinter制作界面实现倒计时功能. 使用time.sleep(1)实现 秒级 倒计时 使用线程避免界面卡死 在线程的循环中检测全局标志位,保证计时线程的重置.以及退出 使用pyinstaller -F file.py -w 生成exe文件,-w表示隐藏控制台,-F表示生成单文件 代码如下: #!/usr/bin/python3.8 # -*- coding: utf-8 -*- # @Time : 2021/4/19 14:

  • Java 获取当前时间及实现时间倒计时功能【推荐】

    引言 在一些项目中或是一些特殊的业务场景中,需要用到显示系统的当前时间,以及一些固定的时间倒计时,时间到后做一些什么事情的业务 .接下来咱们就具体看看代码是怎么实现的: <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML

  • AngularJS 验证码60秒倒计时功能的实现

    最近在做AngularJS 项目,这是写的一个60秒倒计时,  angularjs 与jq不同, 不是使用dom节点操作,而是数据操作,写倒计时,最好是使用$timeout与$interval ,不要使用settimeout与setinterval .$timeout与$interval 可使绑定数据直接更新. html <a href="javascript:" rel="external nofollow" ng-click="sendphone

随机推荐