点击停止的时候停止计时。

" />

android计时器、android格式化时间计数器的实现

作者:小菜 更新时间:2025-02-06 点击数:
简介:完整的Android程序,主要功能是实现秒表计时需求:默认为"00:00:00",点击开始按钮时清零后开始计时,出现如10:28:34。

点击停止的时候停止计时。

【菜科解读】

完整的Android程序,主要功能是实现秒表计时

需求:默认为"00:00:00",点击开始按钮时清零后开始计时,出现如10:28:34。

点击停止的时候停止计时。

问题:使用Calendar DateFormat的方法,不设置时区获取到的小时是本地时区的(东八区的就是8),设置成GMT标准时区获取到的时间是12小时(12:00:00),设置24小时制无效。

在开始时间加减各种小时都无效,而且计时只能到12小时就自动跳上去了,始终无法出现默认状态00:00:00开始计时的效果。

尝试各种时间设置方法无效后只能自己写一个根据秒数转换时间格式字符串的方法了,经过测试是没问题的,两位数只能显示99小时为最大,如需要更大小时数需要改改方法。

另外小时数也不能无限大,超过long数据类型长度会变成负数的,会出现异常的。

显示效果:

测试类:

1 public class TestTime {

2 public static void main(String[] args) { 3 TestTime tt = new TestTime(); 4 tt.showTimeCount(99*3600000+75*1000); 7 //时间计数器,最多只能到99小时,如需要更大小时数需要改改方法 8 public String showTimeCount(long time) { 9 System.out.println("time="+time);10 if(time >= 360000000){11 return "00:00:00";13 String timeCount = "";14 long hourc = time/3600000;15 String hour = "0" + hourc;16 System.out.println("hour="+hour);17 hour = hour.substring(hour.length()-2, hour.length());18 System.out.println("hour2="+hour);20 long minuec = (time-hourc*3600000)/(60000);21 String minue = "0" + minuec;22 System.out.println("minue="+minue);23 minue = minue.substring(minue.length()-2, minue.length());24 System.out.println("minue2="+minue);26 long secc = (time-hourc*3600000-minuec*60000)/1000;27 String sec = "0" + secc;28 System.out.println("sec="+sec);29 sec = sec.substring(sec.length()-2, sec.length());30 System.out.println("sec2="+sec);31 timeCount = hour + ":" + minue + ":" + sec;32 System.out.println("timeCount="+timeCount);33 return timeCount;36 }

实际例子:

1 //时间计数器,最多只能到99小时,如需要更大小时数需要改改方法

2 public String showTimeCount(long time) { 3 if(time >= 360000000){ 4 return "00:00:00"; 6 String timeCount = ""; 7 long hourc = time/3600000; 8 String hour = "0" + hourc; 9 hour = hour.substring(hour.length()-2, hour.length());11 long minuec = (time-hourc*3600000)/(60000);12 String minue = "0" + minuec;13 minue = minue.substring(minue.length()-2, minue.length());15 long secc = (time-hourc*3600000-minuec*60000)/1000;16 String sec = "0" + secc;17 sec = sec.substring(sec.length()-2, sec.length());18 timeCount = hour + ":" + minue + ":" + sec;19 return timeCount;22 private Handler stepTimeHandler;23 private Runnable mTicker;24 long startTime = 0;26 //开始按钮27 class startBtnListener implements OnClickListener {28 @Override29 public void onClick(View v) {30 Button b = (Button)v;31 String buttonText = b.getText().toString();32 if("Start".equalsIgnoreCase(buttonText)){33 b.setText("Stop");34 // 清零 开始计时35 stepTimeTV.setText("00:00:00");36 stepTimeHandler = new Handler();37 startTime = System.currentTimeMillis();38 mTicker = new Runnable() {39 public void run() {40 String content = showTimeCount(System.currentTimeMillis() - startTime);41 stepTimeTV.setText(content);43 long now = SystemClock.uptimeMillis();44 long next = now + (1000 - now % 1000);45 stepTimeHandler.postAtTime(mTicker, next);47 };48 //启动计时线程,定时更新49 mTicker.run();50 }else{51 b.setText("Start");52 //停止计时 Remove any pending posts of Runnable r that are in the message queue.53 stepTimeHandler.removeCallbacks(mTicker);56 }

用时间格式化的方式测试代码:

1 //开始按钮 通过Calendar时间设置的方式,无法正常显示小时为0

2 class startBtnListener implements OnClickListener { 3 @Override 4 public void onClick(View v) { 5 Button b = (Button)v; 6 String buttonText = b.getText().toString(); 7 if("Start".equalsIgnoreCase(buttonText)){ 8 b.setText("Stop"); 9 // 清零 开始计时10 stepTimeTV.setText("00:00:00");11 if (mCalendar == null) {12 mCalendar = Calendar.getInstance();13 TimeZone tz = TimeZone.getTimeZone("GMT");//GMT+814 mCalendar.setTimeZone(tz);15 mCalendar.get(Calendar.HOUR_OF_DAY);//24小时制17 stepTimeHandler = new Handler();18 //System.uptimeMillis() //记录从机器启动后到现在的毫秒数,当系统进入深度睡眠时,此计时器将会停止19 //System.currentTimeMillis() //返回自1970年1月1日到现在的毫秒数,通常用来设置日期和时间20 //System.elapsedRealtime() //返回从机器启动后到现在的毫秒数,包括系统深度睡眠的时间,api里没有这个方法21 //直接取得的是当地时区时间,当地时间跟时区有关,设置GMT后始终多12小时22 startTime = System.currentTimeMillis();//12*3600000 - 36*3600000减掉或者加上12小时都不行 3 mTicker = new Runnable() {24 public void run() {25 //这个减出来的日期是1970年的 时间格式不能出现00:00:00 12:00:0026 long showTime = System.currentTimeMillis() - startTime;27 Log.i(TAG,showTime+"");28 mCalendar.setTimeInMillis(showTime + 13*3600000 + 1000);29 String content = (String) DateFormat.format(mFormat, mCalendar);30 stepTimeTV.setText(content);32 long now = SystemClock.uptimeMillis();33 long next = now + (1000 - now % 1000);34 stepTimeHandler.postAtTime(mTicker, next);36 };37 //启动计时线程,定时更新38 mTicker.run();39 }else{40 b.setText("Start");41 //停止计时 Remove any pending posts of Runnable r that are in the message queue.42 stepTimeHandler.removeCallbacks(mTicker);47 private Handler stepTimeHandler;48 Calendar mCalendar;49 String mFormat = "yyyy-MM-dd hh:mm:ss";//yyyy-MM-dd50 long startTime = 0;51 private Runnable mTicker;

android,计时器,、,格式化,时间,计数器,的,实现,
                                   

[l重装系统]如何快速、安全地重新安装电脑系统

男朋友频繁在阳台、露台等户外空间的行为心理分析及潜在危害

男朋友喜欢在阳台、露台等地方的行为心理及潜在危害 在现代都市生活中,阳台和露台作为家居空间的一部分,往往承载着人们多样的生活需求。

对于一些人来说,阳台和露台是他们放松、思考、甚至进行某些特殊活动的场所。

特别是当你的男朋友对阳台或露台情有独钟时,你可能会好奇他究竟在这些地方做些什么,以及这种行为背后隐藏的心理动机。

同时,你或许也会担忧这样的行为是否存在某些潜在危害。

本文将尝试从心理和行为两个层面,探讨男朋友喜欢在阳台、露台等地方做什么,以及这种行为可能带来的危害。

一、男朋友在阳台、露台的行为类型 1. 静谧独处 许多男性选择在阳台或露台而独处,享受片刻的宁静。

他们可能在这里阅读、听音乐或简单地放空自己。

这种行为反映了他们内心对于安静、独处空间的渴望,也是缓解压力、调整情绪的一种方式。

2. 抽烟或饮酒 有些男性喜欢在阳台或露台抽烟或饮酒,可能是因为这些活动在室内会受到限制或反感。

然而,这也可能暗示他们试图通过这些行为来逃避现实、缓解焦虑或寻求某种刺激。

3. 观赏风景 阳台和露台往往拥有良好的视野,是观赏城市风光、欣赏自然美景的绝佳地点。

男朋友可能喜欢在这里凝视远方,感受自然与城市的交融,这体现了他们对美好生活的向往和对自然的热爱。

4. 思考人生 在阳台或露台上,人们往往能远离喧嚣,更容易进入深入思考的状态。

男朋友可能喜欢在这里回顾过去、规划未来,甚至进行哲学性的思考。

这种行为有助于他们整理思绪、明确目标。

5. 进行户外活动 阳台和露台还可以作为进行户外活动的场所,如种植花草、烧烤、瑜伽等。

男朋友可能喜欢在这里进行这些活动,以放松身心、享受生活。

二、男朋友喜欢在阳台、露台的心理动机 1. 寻求私人空间 在现代社会,个人隐私和空间往往受到侵扰。

阳台和露台作为相对独立的空间,为男朋友提供了一个可以逃离喧嚣、享受私人时光的场所。

在这里,他们可以自由地表达自己、释放压力。

2. 追求自然与宁静 随着城市化进程的加速,人们越来越向往自然与宁静。

阳台和露台作为连接室内与室外的桥梁,为男朋友提供了一个接触自然、感受宁静的机会。

在这里,他们可以呼吸新鲜空气、欣赏美景,从而获得心灵上的满足。

3. 逃避现实与压力 面对生活和工作中的压力,男朋友可能选择逃避到阳台或露台上。

在这里,他们可以暂时忘记烦恼、放松心情,通过独处或进行某些活动来释放压力。

4. 表达个性与创造力 阳台和露台作为家居空间的一部分,也是展示个性和创造力的舞台。

男朋友可能喜欢在这里布置装饰、种植植物或进行其他创造性活动,以表达自己的独特品味和兴趣爱好。

三、男朋友在阳台、露台行为的潜在危害 1. 安全隐患 阳台和露台作为开放空间,存在一定的安全隐患。

如果男朋友在这里进行危险活动(如攀爬、跳跃等),或未做好防护措施(如未安装防护栏、未清理杂物等),可能会导致意外伤害的发生。

2. 影响邻里关系 如果男朋友在阳台或露台上进行噪音较大或影响他人生活的活动(如大声放音乐、烧烤等),可能会引发邻里纠纷和投诉。

这不仅会影响双方的日常生活,还可能破坏社区和谐氛围。

3. 健康风险 长时间在阳台或露台上抽烟、饮酒等行为可能对男朋友的身体健康造成危害。

此外,如果阳台或露台的环境卫生条件不佳(如灰尘较多、空气流通不畅等),还可能增加患病的风险。

4. 心理困扰 虽然阳台和露台为男朋友提供了一个放松身心的场所,但过度依赖这些空间也可能导致心理困扰。

如果男朋友将大量时间用于独处和逃避现实,可能会削弱他们的社交能力和应对生活压力的能力,进而引发孤独感、焦虑等心理问题。

四、如何引导男朋友合理利用阳台、露台空间 1. 增强安全意识 提醒男朋友在阳台或露台上活动时注意安全,遵守相关安全规定。

如安装防护栏、清理杂物、保持地面干燥等,以降低意外伤害的风险。

2. 促进邻里和谐 引导男朋友在阳台或露台上进行活动时注意邻里感受,避免产生噪音或影响他人生活的行为。

同时,也可以与邻居建立良好的沟通和互动关系,共同维护社区和谐氛围。

3. 关注身心健康 鼓励男朋友在阳台或露台上进行健康有益的活动,如种植花草、瑜伽等。

同时,也要关注他的身心健康状况,及时提醒他合理安排时间、保持健康的生活方式。

4. 培养社交能力 虽然阳台和露台为男朋友提供了一个放松身心的场所,但也要鼓励他走出这些空间,积极参与社交活动。

通过与朋友、家人等

加入收藏
               

android计时器、android格式化时间计数器的实现

点击下载文档

格式为doc格式

  • 账号登录
社交账号登录