西西軟件園多重安全檢測下載網(wǎng)站、值得信賴的軟件下載站!
軟件
軟件
文章
搜索

首頁編程開發(fā)Delphi → android計時器、android 格式化時間計數(shù)器的實現(xiàn)

android計時器、android 格式化時間計數(shù)器的實現(xiàn)

相關(guān)軟件相關(guān)文章發(fā)表評論 來源:西西整理時間:2013/3/11 21:32:04字體大。A-A+

作者:西西點擊:504次評論:1次標簽: android計時器

迅雷7v7.9.44.5056 官方最新版
  • 類型:下載工具大。41M語言:中文 評分:9.9
  • 標簽:
立即下載

完整的Android程序,主要功能是實現(xiàn)秒表計時

需求:
默認為"00:00:00",點擊開始按鈕時清零后開始計時,出現(xiàn)如10:28:34。點擊停止的時候停止計時。

問題:
使用Calendar DateFormat的方法,不設(shè)置時區(qū)獲取到的小時是本地時區(qū)的(東八區(qū)的就是8),設(shè)置成GMT標準時區(qū)獲取到的時間是12小時(12:00:00),設(shè)置24小時制無效。

在開始時間加減各種小時都無效,而且計時只能到12小時就自動跳上去了,始終無法出現(xiàn)默認狀態(tài)00:00:00開始計時的效果。
嘗試各種時間設(shè)置方法無效后只能自己寫一個根據(jù)秒數(shù)轉(zhuǎn)換時間格式字符串的方法了,經(jīng)過測試是沒問題的,兩位數(shù)只能顯示99小時為最大,如需要更大小時數(shù)需要改改方法。
另外小時數(shù)也不能無限大,超過long數(shù)據(jù)類型長度會變成負數(shù)的,會出現(xiàn)異常的。

顯示效果:

測試類:

 1 public class TestTime {

 2     public static void main(String[] args) {
 3         TestTime tt = new TestTime();
 4         tt.showTimeCount(99*3600000+75*1000);
 5     }
 6     
 7     //時間計數(shù)器,最多只能到99小時,如需要更大小時數(shù)需要改改方法
 8     public String showTimeCount(long time) {
 9         System.out.println("time="+time);
10         if(time >= 360000000){
11             return "00:00:00";
12         }
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);
19         
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);
25         
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;
34     }
35     
36 }


實際例子:

 1 //時間計數(shù)器,最多只能到99小時,如需要更大小時數(shù)需要改改方法

 2     public String showTimeCount(long time) {
 3         if(time >= 360000000){
 4             return "00:00:00";
 5         }
 6         String timeCount = "";
 7         long hourc = time/3600000;
 8         String hour = "0" + hourc;
 9         hour = hour.substring(hour.length()-2, hour.length());
10         
11         long minuec = (time-hourc*3600000)/(60000);
12         String minue = "0" + minuec;
13         minue = minue.substring(minue.length()-2, minue.length());
14         
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;
20     }
21     
22     private Handler stepTimeHandler;
23     private Runnable mTicker;
24     long startTime = 0;
25     
26     //開始按鈕
27     class startBtnListener implements OnClickListener {
28         @Override
29         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);
42 
43                         long now = SystemClock.uptimeMillis();
44                         long next = now + (1000 - now % 1000);
45                         stepTimeHandler.postAtTime(mTicker, next);
46                     }
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);
54             }
55         }
56     }


用時間格式化的方式測試代碼:

 1     //開始按鈕 通過Calendar時間設(shè)置的方式,無法正常顯示小時為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+8
14                     mCalendar.setTimeZone(tz);
15                     mCalendar.get(Calendar.HOUR_OF_DAY);//24小時制
16                 }
17                 stepTimeHandler = new Handler();
18                 //System.uptimeMillis()         //記錄從機器啟動后到現(xiàn)在的毫秒數(shù),當系統(tǒng)進入深度睡眠時,此計時器將會停止
19                 //System.currentTimeMillis()   //返回自1970年1月1日到現(xiàn)在的毫秒數(shù),通常用來設(shè)置日期和時間
20                 //System.elapsedRealtime()   //返回從機器啟動后到現(xiàn)在的毫秒數(shù),包括系統(tǒng)深度睡眠的時間,api里沒有這個方法
21                 //直接取得的是當?shù)貢r區(qū)時間,當?shù)貢r間跟時區(qū)有關(guān),設(shè)置GMT后始終多12小時
22                 startTime = System.currentTimeMillis();//12*3600000  - 36*3600000減掉或者加上12小時都不行 
3                 mTicker = new Runnable() {
24                     public void run() {
25                         //這個減出來的日期是1970年的  時間格式不能出現(xiàn)00:00:00 12:00:00
26                         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);
31 
32                         long now = SystemClock.uptimeMillis();
33                         long next = now + (1000 - now % 1000);
34                         stepTimeHandler.postAtTime(mTicker, next);
35                     }
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);
43             }
44         }
45     }
46     
47     private Handler stepTimeHandler;
48     Calendar mCalendar;
49     String mFormat = "yyyy-MM-dd hh:mm:ss";//yyyy-MM-dd
50     long startTime = 0;
51     private Runnable mTicker;


    迅雷種子搜索
    (17)迅雷種子搜索
    迅雷搜索瀏覽器是一款種子磁力資源搜索平臺軟件,支持獨家的種子下載功能,超多的搜索渠道基本滿足任何用戶的搜索需求。本次放出種子搜索瀏覽器pc版,安卓版,蘋果版資源下載,想要一款bt搜索神器類應(yīng)用的朋友們不要錯過哦!...更多>>
    • 迅雷7官方版v7.9.44.5056

      05-09 / 17.4M

      推薦理由:迅雷7主界面最大的變化就是新加入的“炫彩換膚”功能,通過該功能,用戶可以方便直觀的對迅雷7主界面進行換
    • 百度網(wǎng)盤極速上傳控件V2.0.0.3 官方

      03-29 / 438KB

      推薦理由:新增極速上傳控件,支持文件秒傳、斷點續(xù)傳、支持4G大文件上傳、支持單次上傳1000個文件.支持IE、谷歌瀏覽器
    • 百度網(wǎng)盤v10.0.22 安卓版

      07-18 / 74.4M

      推薦理由:百度網(wǎng)盤下載,在眾多互聯(lián)網(wǎng)大鱷都推出了免費網(wǎng)盤后,互聯(lián)網(wǎng)大神百度也耐不住了,推出了百度網(wǎng)盤。通過你的百
    • 迅雷快鳥最新版4.1.2 無限流量版

      01-17 / 4.5M

      推薦理由:迅雷快鳥破解版是迅雷快鳥電腦版的特別版本,這一版本為用戶修改了迅雷快鳥正式版中的vip和流量限制,用戶使
    • 迅雷7v7.9.44.5056 官方最新版

      10-16 / 41M

      推薦理由:迅雷7擁有國內(nèi)80%以上的用戶使用的下載工具。使用迅雷7官方下載,要注意它在后臺自動上傳文件,P2P的都會這
    • 極速迅雷v9.1.41 官方最新版

      10-16 / 41M

      推薦理由:談到下載利器,大家熟悉的有迅雷、QQ旋風。論到資源數(shù)量時,還是迅雷優(yōu)先。但是對于普通用戶來說,迅雷捆綁
    百度網(wǎng)盤搜索神器
    (17)百度網(wǎng)盤搜索神器
    西西為大家?guī)淼倪@款種子百度網(wǎng)盤搜索神器p合集包含安卓、電腦、蘋果、mac等相關(guān)版本,無論你使用的是何種設(shè)備,都可以使用這款百度網(wǎng)盤搜索神器進行資源搜索、解析、下載、播放服務(wù)喲。...更多>>
    • 百度網(wǎng)盤v10.0.22 安卓版

      07-18 / 74.4M

      推薦理由:百度網(wǎng)盤下載,在眾多互聯(lián)網(wǎng)大鱷都推出了免費網(wǎng)盤后,互聯(lián)網(wǎng)大神百度也耐不住了,推出了百度網(wǎng)盤。通過你的百
    • 百度網(wǎng)盤2019官方最新版V10.0.43 手

      08-26 / 79.2M

      推薦理由:百度網(wǎng)盤2019最新版為大家?guī),這是一款人手必備的云端儲存軟件,全新的界面和功能,為用戶帶來更加流暢便
    • 迅雷7官方版v7.9.44.5056

      05-09 / 17.4M

      推薦理由:迅雷7主界面最大的變化就是新加入的“炫彩換膚”功能,通過該功能,用戶可以方便直觀的對迅雷7主界面進行換
    • 迅雷快鳥最新版4.1.2 無限流量版

      01-17 / 4.5M

      推薦理由:迅雷快鳥破解版是迅雷快鳥電腦版的特別版本,這一版本為用戶修改了迅雷快鳥正式版中的vip和流量限制,用戶使
    • 迅雷7v7.9.44.5056 官方最新版

      10-16 / 41M

      推薦理由:迅雷7擁有國內(nèi)80%以上的用戶使用的下載工具。使用迅雷7官方下載,要注意它在后臺自動上傳文件,P2P的都會這
    • 極速迅雷v9.1.41 官方最新版

      10-16 / 41M

      推薦理由:談到下載利器,大家熟悉的有迅雷、QQ旋風。論到資源數(shù)量時,還是迅雷優(yōu)先。但是對于普通用戶來說,迅雷捆綁
    迅雷x搜索神器
    (17)迅雷x搜索神器
    迅雷x可抓取全球ED2k網(wǎng)絡(luò)磁力種子鏈接,簡單便捷的搜索到ED2K網(wǎng)絡(luò)上共享的海量影音娛樂學習資料等資源。包含電影種子,動漫種子,電視劇種子,綜藝節(jié)目種子。資源鏈接可以用電驢或者迅雷下載工具下載,非常方便。...更多>>
    • 迅雷7官方版v7.9.44.5056

      05-09 / 17.4M

      推薦理由:迅雷7主界面最大的變化就是新加入的“炫彩換膚”功能,通過該功能,用戶可以方便直觀的對迅雷7主界面進行換
    • 迅雷快鳥最新版4.1.2 無限流量版

      01-17 / 4.5M

      推薦理由:迅雷快鳥破解版是迅雷快鳥電腦版的特別版本,這一版本為用戶修改了迅雷快鳥正式版中的vip和流量限制,用戶使
    • 迅雷7v7.9.44.5056 官方最新版

      10-16 / 41M

      推薦理由:迅雷7擁有國內(nèi)80%以上的用戶使用的下載工具。使用迅雷7官方下載,要注意它在后臺自動上傳文件,P2P的都會這
    • 極速迅雷v9.1.41 官方最新版

      10-16 / 41M

      推薦理由:談到下載利器,大家熟悉的有迅雷、QQ旋風。論到資源數(shù)量時,還是迅雷優(yōu)先。但是對于普通用戶來說,迅雷捆綁
    • 迅雷極速版v1.0.35.366 綠色精簡版

      11-27 / 17.2M

      推薦理由:迅雷精簡版是迅雷公司開發(fā)的輕量級下載利器~具有速度快,無廣告,高效率的特點~~~雖然綜合實力不能與迅雷7等
    • 百度網(wǎng)盤9.6.10 官方最新版

      04-19 / 233.8M

      推薦理由:百度網(wǎng)盤iphone版一般用來做網(wǎng)盤用,速度快,而且存儲放心穩(wěn)定。百度網(wǎng)盤iphone版是百度推出的一款云存儲服
    迅雷下載
    (17)迅雷下載
    迅雷下載是西西為大家收集整理的一些種子磁力下載工具,這些軟件可以幫你下載迅雷鏈接或種子文件。迅雷下載是我們?nèi)粘I钪谐R姷囊环N下載方式,一般常見于一些大文件或者大的游戲,磁力下載的工具有很多,包括我們耳熟能詳?shù)膗Torrent、電驢、迅雷等,這里西西提供的磁力下載工具除了電腦版的之外還有一些手機版工具。...更多>>
    • 迅雷10最新版v10.1.24.590 官方版

      11-04 / 84.1M

      推薦理由:迅雷10是一款迅雷官方推出的下載軟件,直接跳過了迅雷8.0版本號,使用更加完善先進的超線程技術(shù)基于網(wǎng)格原理
    • 迅雷7官方版v7.9.44.5056

      05-09 / 17.4M

      推薦理由:迅雷7主界面最大的變化就是新加入的“炫彩換膚”功能,通過該功能,用戶可以方便直觀的對迅雷7主界面進行換
    • 極速迅雷v9.1.41 官方最新版

      10-16 / 41M

      推薦理由:談到下載利器,大家熟悉的有迅雷、QQ旋風。論到資源數(shù)量時,還是迅雷優(yōu)先。但是對于普通用戶來說,迅雷捆綁
    • 迅雷極速版v1.0.35.366 綠色精簡版

      11-27 / 17.2M

      推薦理由:迅雷精簡版是迅雷公司開發(fā)的輕量級下載利器~具有速度快,無廣告,高效率的特點~~~雖然綜合實力不能與迅雷7等
    • 百度網(wǎng)盤9.6.10 官方最新版

      04-19 / 233.8M

      推薦理由:百度網(wǎng)盤iphone版一般用來做網(wǎng)盤用,速度快,而且存儲放心穩(wěn)定。百度網(wǎng)盤iphone版是百度推出的一款云存儲服
    • 百度網(wǎng)盤極速上傳控件V2.0.0.3 官方

      03-29 / 438KB

      推薦理由:新增極速上傳控件,支持文件秒傳、斷點續(xù)傳、支持4G大文件上傳、支持單次上傳1000個文件.支持IE、谷歌瀏覽器
    迅雷7
    (63)迅雷7
    迅雷7是迅雷官方的一款最經(jīng)典版本,使用多年,經(jīng)久不衰,而且由于界面簡約,所以深受廣大用戶的信賴。迅雷7完全支持當前網(wǎng)絡(luò)中的各類瀏覽器與相關(guān)下載任務(wù),所以大家無須擔心版本過期問題。迅雷7在迅雷官網(wǎng)平臺已經(jīng)無法找到,網(wǎng)絡(luò)中的許多舊版都是未升級版本,大家需要使用請認西西軟件園。...更多>>

    相關(guān)評論

    閱讀本文后您有什么感想? 已有人給出評價!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過難過
    • 5 囧
    • 3 圍觀圍觀
    • 2 無聊無聊

    熱門評論

    最新評論

    發(fā)表評論 查看所有評論(1)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字數(shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)