时间计时器

package com.example.demo1;

import android.os.Bundle;
import android.os.Handler;
import android.os.SystemClock;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends Activity implements OnClickListener {

	private TextView timeTV;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		timeTV = (TextView) findViewById(R.id.tv);
		b = (Button) findViewById(R.id.bt);
		b.setOnClickListener(this);

	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

	public String showTimeCount(long time) {
		if (time >= 360000000) {
			return "00:00:00";
		}
		String timeCount = "";
		long hourc = time / 3600000;
		String hour = "0" + hourc;
		hour = hour.substring(hour.length() - 2, hour.length());

		long minuec = (time - hourc * 3600000) / (60000);
		String minue = "0" + minuec;
		minue = minue.substring(minue.length() - 2, minue.length());

		long secc = (time - hourc * 3600000 - minuec * 60000) / 1000;
		String sec = "0" + secc;
		sec = sec.substring(sec.length() - 2, sec.length());
		timeCount = hour + ":" + minue + ":" + sec;
		return timeCount;
	}

	private Handler stepTimeHandler;
	private Runnable mTicker;
	long startTime = 0;
	private Button b;

	// 开始按钮
	public void onClick(View v) {

		String buttonText = b.getText().toString();
		if ("Start".equalsIgnoreCase(buttonText)) {
			b.setText("Stop");
			// 清零 开始计时
			timeTV.setText("00:00:00");
			stepTimeHandler = new Handler();
			startTime = System.currentTimeMillis();
			mTicker = new Runnable() {
				public void run() {
					String content = showTimeCount(System.currentTimeMillis()
							- startTime);
					timeTV.setText(content);

					long now = SystemClock.uptimeMillis();
					long next = now + (1000 - now % 1000);
					stepTimeHandler.postAtTime(mTicker, next);
				}
			};
			// 启动计时线程,定时更新
			mTicker.run();
		} else {
			b.setText("Start");
			// 停止计时 Remove any pending posts of Runnable r that are in the
			// message queue.
			stepTimeHandler.removeCallbacks(mTicker);
		}
	}
}

  

时间: 2024-10-05 10:31:48

时间计时器的相关文章

Stopwatch类,性能,时间计时器

在研究性能的时候,完全可以使用Stopwatch计时器计算一项技术的效率.但是有时想知道某想技术的性能的时候,又常常想不起可以运用Stopwatch这个东西,太可悲了. 属性: Elapsed 获取当前实例测量得出的总运行时间. ElapsedMilliseconds  获取当前实例测量得出的总运行时间(以毫秒为单位). ElapsedTicks  获取当前实例测量得出的总运行时间(用计时器计时周期表示). IsRunning   获取一个指示 Stopwatch 计时器是否在运行的值. 方法

在MFC中增加一个时间计时器消息事件

在MFC中增加一个时间计时器消息事件 利用this->SetTimer(1,1000,NULL);开启计时器 添加响应事件 void Csqllink1Dlg::OnTimer(UINT_PTR nIDEvent) { CTime tm; tm=CTime::GetCurrentTime(); CWnd* pWnd = (CWnd*)GetDlgItem(IDC_STATIC);switch(nIDEvent){ case 1: //MessageBox(_T("test"));

(转)C#精确时间计时器

原文地址:http://blog.sina.com.cn/s/blog_699d3f1b01012vgb.html 1 调用WIN API中的GetTickCount [DllImport("kernel32")]static extern uint GetTickCount(); 从操作系统启动到现在所经过的毫秒数,精度为1毫秒,经简单测试发现其实误差在大约在15ms左右 缺点:返回值是uint,最大值是2的32次方,因此如果服务器连续开机大约49天以后,该方法取得的返回值会归零 用

轮播图片, 不用滚动视图, 也不用时间计时器

NSArray *myImages = [NSArray arrayWithObjects: [UIImage imageNamed:@"1"], [UIImage imageNamed:@"2"], nil]; UIImageView *imageView=[[UIImageView alloc]initWithFrame:CGRectMake(0, 0, self.window.frame.size.width, self.window.frame.size.h

Stopwatch Timer 时间 计时器 ElapsedMilliseconds

/// <summary> /// 转换成时间 00:00:00 /// </summary> /// <param name="duration"></param> /// <returns></returns> public string time(long duration) { TimeSpan t = new TimeSpan(0, 0, Convert.ToInt32(duration)); //str

菜鸟学Linux 第004篇笔记 &nbsp; &nbsp; &nbsp; Linux时间和帮助命令

一.时间管理date date: 显示当前时间 查看的是系统时间 date MMDDHHMMYY.SS 修改当前的系统时间 月日时分年.秒 date +FORMAT 以格式显示时间日期 +%D display date; +%Y display year; +%S display second; +%M display minute; +%n a newline; +%m month; hwclock: 硬件时间 hwclock - query and set the hardware cloc

JavaScript 日期与计时器

JavaScript 日期与计时器 JavaScript 中日期和计时器是常用的工具方法,本文主要介绍构造函数 Date 的使用和时间戳的概念,以及设置计时器和清除计时器的方法 日期对象 Date 是一个构造函数,其原型上定义了一些日期方法 Date() 执行 Date(),返回表示日期的字符串 new Date() 没有参数,返回当前日期实例对象 var date = new Date(); console.log(Object.prototype.toString.call(date));

原生JS封装运动框架

昨天我们说了一下原生JS中常用的兼容性写法,今天我们来说一下运动框架. 正常情况下我们要写一个运动的效果会用到tween.js这么一个插件,这个东西不是一般人写出来的,因为里面涉及的运动效果都是经过一堆数学的函数运算出来的,我们平常人是写不出来的,所有我们就自己封装一个运动框架,有什么问题改起来也方便,下面我们就开始封装. 首先,我们先写一个div,设置一些简单的样式,我们就拿这个div举例子,如下代码: #div{ width: 100px; height: 100px; background

System &amp; Runtime &amp;Math

package com.shushine.framework.第七章Java标准类库; /** * * <p> * 描述该类情况 {@link 代表跟谁有关系} * </p> * * @author 王超 * @since 1.0 * @date 2016年10月21日 上午11:27:48 * @see 新建|修改|放弃 * @see com.shushine.framework.第七章Java标准类库.SystemAndRuntimeAndMath *      System类