国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 系統 > Android > 正文

android計時器,時間計算器的實現方法

2020-04-11 12:30:31
字體:
來源:轉載
供稿:網友

需求:默認為"00:00:00",點擊開始按鈕時清零后開始計時,出現如10:28:34。點擊停止的時候停止計時。
問題:使用Calendar DateFormat的方法,不設置時區獲取到的小時是本地時區的(東八區的就是8),設置成GMT標準時區獲取到的時間是12小時(12:00:00),設置24小時制無效。
在開始時間加減各種小時都無效,而且計時只能到12小時就自動跳上去了,始終無法出現默認狀態00:00:00開始計時的效果。
嘗試各種時間設置方法無效后只能自己寫一個根據秒數轉換時間格式字符串的方法了,經過測試是沒問題的,兩位數只能顯示99小時為最大,如需要更大小時數需要改改方法。
另外小時數也不能無限大,超過long數據類型長度會變成負數的,會出現異常的。

顯示效果:

 

 

測試類:

復制代碼 代碼如下:

public class TestTime {
     public static void main(String[] args) {
         TestTime tt = new TestTime();
         tt.showTimeCount(99*3600000+75*1000);
     }

     //時間計數器,最多只能到99小時,如需要更大小時數需要改改方法
     public String showTimeCount(long time) {
         System.out.println("time="+time);
         if(time >= 360000000){
             return "00:00:00";
         }
         String timeCount = "";
         long hourc = time/3600000;
         String hour = "0" + hourc;
         System.out.println("hour="+hour);
         hour = hour.substring(hour.length()-2, hour.length());
         System.out.println("hour2="+hour);

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

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

 }

實際例子:

復制代碼 代碼如下:

//時間計數器,最多只能到99小時,如需要更大小時數需要改改方法
     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;

     //開始按鈕
     class startBtnListener implements OnClickListener {
         @Override
         public void onClick(View v) {
             Button b = (Button)v;
             String buttonText = b.getText().toString();
             if("Start".equalsIgnoreCase(buttonText)){
                 b.setText("Stop");
                 // 清零 開始計時
                 stepTimeTV.setText("00:00:00");
                 stepTimeHandler = new Handler();
                 startTime = System.currentTimeMillis();
                 mTicker = new Runnable() {
                     public void run() {
                         String content = showTimeCount(System.currentTimeMillis() - startTime);
                         stepTimeTV.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);
             }
         }
     }

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

復制代碼 代碼如下:

//開始按鈕 通過Calendar時間設置的方式,無法正常顯示小時為0
     class startBtnListener implements OnClickListener {
         @Override
         public void onClick(View v) {
             Button b = (Button)v;
             String buttonText = b.getText().toString();
             if("Start".equalsIgnoreCase(buttonText)){
                 b.setText("Stop");
                 // 清零 開始計時
                 stepTimeTV.setText("00:00:00");
                 if (mCalendar == null) {
                     mCalendar = Calendar.getInstance();
                     TimeZone tz = TimeZone.getTimeZone("GMT");//GMT+8
                     mCalendar.setTimeZone(tz);
                     mCalendar.get(Calendar.HOUR_OF_DAY);//24小時制
                 }
                 stepTimeHandler = new Handler();
                 //System.uptimeMillis()         //記錄從機器啟動后到現在的毫秒數,當系統進入深度睡眠時,此計時器將會停止
                 //System.currentTimeMillis()   //返回自1970年1月1日到現在的毫秒數,通常用來設置日期和時間
                 //System.elapsedRealtime()   //返回從機器啟動后到現在的毫秒數,包括系統深度睡眠的時間,api里沒有這個方法
                 //直接取得的是當地時區時間,當地時間跟時區有關,設置GMT后始終多12小時
                 startTime = System.currentTimeMillis();//12*3600000  - 36*3600000減掉或者加上12小時都不行
                 mTicker = new Runnable() {
                     public void run() {
                         //這個減出來的日期是1970年的  時間格式不能出現00:00:00 12:00:00
                         long showTime = System.currentTimeMillis() - startTime;
                         Log.i(TAG,showTime+"");
                         mCalendar.setTimeInMillis(showTime + 13*3600000 + 1000);
                         String content = (String) DateFormat.format(mFormat, mCalendar);
                         stepTimeTV.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);
             }
         }
     }

     private Handler stepTimeHandler;
     Calendar mCalendar;
     String mFormat = "yyyy-MM-dd hh:mm:ss";//yyyy-MM-dd
     long startTime = 0;
     private Runnable mTicker;

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
黄色片免费在线| 最近最好的中文字幕2019免费 | 老鸭窝av在线| 伊人中文在线| 青青艹在线视频| 最近中文字幕av免费高清| 国产激情二区| 国产在线资源| 精品一区二区三区在线成人| www.狠狠艹| 国产午夜精品久久久久免费视 | 国产免费麻豆视频| 国产黄在线播放| 免费a级在线播放| 精品美女在线观看视频在线观看| 四虎免费播放| 国产一卡二卡3卡4卡四卡在线| 国产国产国产国产国产国产| 青草在线视频在线观看| 中文字幕国产欧美| 日本一卡二卡四卡精品| 国产毛片毛片| 日韩亚洲一区中文字幕| 国产亚洲精品久久久久久青梅 | 亚洲国产aⅴ精品| 丁香视频五月| 日韩国产成人| 在线亚洲精品自拍| 国产精品欧美色图| 免费在线黄色网址| a视频免费看| av小说在线| 中文字幕4区| 精品黄色免费中文电影在线播放| 国产九色在线| 福利在线国产| 毛片网站在线观看| 九九热在线视频观看| 四虎成人精品在永久在线观看| 2018中文字幕在线观看| 中文字幕日本在线| 中文字幕在线免费看| 国内自拍视频在线看免费观看| 四虎成人欧美精品在永久在线| 国产a国产a国产a| 国产成a人亚洲精v品| 国产youjizz在线| 精品国产一区二区三区不卡在线| 国产精品国产国产aⅴ| 国产污视频在线| 国产黄在线看| 在线色视频网| 交视频在线观看国产| 黄色av网址在线免费观看| 国产在线高清| 国产精品视频福利一区二区 | 国产精品久久久高清免费| 国产精选在线观看| 国产亚洲精品拍拍拍拍拍| 18 激情视频在线| 在线播放av网站| 午夜亚洲成人| 中文字幕不卡| 伊人网在线免费观看| xxx国产精品| 国产网友自拍电影在线| 夜夜爽视频导航| 国产裸舞福利在线视频合集 | 国产系列在线观看| 在线免费观看黄色av| 亚洲欧美自拍另类| 黄色av网址在线免费观看| 国产不卡精品一区二区三区| www.操.com| 国产高清免费在线播放| 欧美日韩亚洲国内综合网| 中文字幕毛片| 免费在线看v| 伊人av免费在线观看| 国产精品视频二区三区| 美女av在线播放| 亚洲综合激情六月婷婷在线观看| 国产美女福利在线观看| 亚洲综合在线不卡| 国产亚洲精品久久久久久青梅| 在线免费看黄网站| 国产精美视频| 国产欧美久久久久久久久| 福利视频网址导航| 免费影视观看网站入口| 在线观看av网站| 国产xxx在线| 国产精品视频一区二区久久 | 日本中文字幕在线看| 日本国产在线| jizz在线视频| 亚洲最新永久观看在线| 91xx在线观看| 2019中文字幕在线电影免费| 国产高清在线视频| 在线视频中文字幕久| 992tv在线观看在线播放| 国产福利电影在线观看| 国产国语**毛片高清视频| 国产精品bbw一区二区三区| 国产日本视频| 精品免费视频一卡2卡三卡4卡不卡| 国产三级在线| 99免费视频| 日本成a人片在线观看| 欧美国产中文| 高清av在线| 国产精品不卡一区二区三区在线观看| 天天操天天操一操| 国产青青视频| av人人综合网| 高清视频一区二区三区四区| 最新黄网在线观看| 伊人伊人av电影| 玖玖在线视频| 69精品视频| 成人免费一区二区三区牛牛| 国产福利在线| 任你操在线观看| 国产精品秘入口| 日本视频在线| 国产精品剧情一区二区三区| 亚洲91av| 国产日韩网站| 快射av在线播放一区| 国产激情视频一区二区三区| 四虎www视频| 国产精品久久久久一区二区国产| 亚洲欧美小说国产图片| 懂色av中文在线| 在线观看av中文| 天天操天天曰| 在线亚洲电影| 国产三级在线免费观看| 免费的黄网站在线观看| 国产精品xxx电影| 狠狠色丁香婷婷| 在线中文字幕视频观看| 尤物网站在线| a视频免费看| 在线激情小视频| 精品国产免费第一区二区| 国产剧情av在线| 黄色网址在线免费播放| 日本国产在线| www.av在线视频| 三级小说一区| 中文产幕区在线观看| 2021天堂中文幕一二区在线观| 国产日本视频| 国产国产人免费人成免费视频| 国产免费一级| 最好看更新中文字幕| 高清av中文在线字幕观看1| h网址在线观看| 丝袜理论片在线观看| www.操操操| 国产在线资源| 中文字幕在线影视资源| 午夜免费视频在线国产| 尤物视频在线免费观看| 国产精品一区在线看| 国产免费福利| 国产污视频在线| 国产高清一级片| 亚洲成人av高清| 四虎网站在线观看| 超碰97在线免费观看| 激情综合网五月激情| 国产卡一卡二卡三| 国产激情自拍视频| 亚洲久草视频| 成人精品福利| 国产成人高清精品| а√天堂www在线а√天堂视频| 国产在线观看色| 97高清视频| 激情在线视频播放| 国产私人尤物无码不卡| 精品国产高清自在线一区二区三区| 999精品网| 欧美性xxxx交| 国产污视频在线| av在线免费播放网站| 国产在线超碰| 亚洲国产日韩成人综合天堂| 国产精品自产拍在线观看2019| 国产高清视频免费最新在线| 日日夜夜中文字幕| 国产激情网址| 国产女人伦码一区二区三区不卡| 伊人久久青青草| 国产青草视频在线观看视频| 免费一区二区在线观看| 国产精品福利视频一区二区三区|