前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >自写时间小工具类

自写时间小工具类

作者头像
@坤的
发布2018-06-04 12:37:18
4680
发布2018-06-04 12:37:18
举报
文章被收录于专栏:*坤的Blog

  有时候需要用到计算程序运行的时间,每次都是直接用System.currentTimeMillis()或者另外一个纳秒的.觉得比较麻烦,就写了一个简单的工具,大神勿喷,有好的建议欢迎留言. 

旧版本的代码,存在很多不足.

代码语言:javascript
复制
package com.wk.mothod;

public class MyTimeUtil {

    private long time=0;
    public  void start() {
        time=System.currentTimeMillis();
    }
    public void end(){
        time=System.currentTimeMillis()-time;
    }
    public long endAndGet(){
        time=System.currentTimeMillis()-time;
        return time;
    }
    public long getTime(){
        return time;
    }
    public void disp() {
        System.out.println("The total time is:"+time+"ms");
    }
    public void endAndDisp() {
        time=System.currentTimeMillis()-time;
        System.out.println("The total time is:"+time+"ms");
    }
}

优化了下,简单添加了一些锁.不会造成一些重复操作,也有一个实际使用的例子.

代码语言:javascript
复制
package com.wk.mothod;

public class MyTimeUtil {

    private long time=0;
    private boolean stag=false,etag=false;
    private int tag=0;
    public  void start() {
        if(stag==false){
            time=System.currentTimeMillis();
            stag=true;
        }else{
            System.out.println("Start failed! Time has started!");
        }
    }
    public  void reStart() {
        if(stag==true){
            time=System.currentTimeMillis();
        }else{
            System.out.println("ReStart failed! Time hasn't started!");
        }
    }
    public long end(){
        if(etag==false&&stag==true){
            time=System.currentTimeMillis()-time;
            etag=true;
            stag=false;
        }else{
            System.out.println("End failed! Time hasn't started or alread stop!");
        }
        return time;
    }
    public long getTime(){
        long t=0;
        if(stag==true){
            return System.currentTimeMillis()-time;//wkupdate 20170725 get time whenever
        }else{
            System.out.println("Time hasn't started!");
            return 0;
        }
        //        return time;
    }
    public void disp() {
        if(etag==true){
        System.out.println("The total time is:"+time+"ms!");
        }else{
            System.out.println("Time haven't end");
            
        }
    }
    public void endAndDisp() {
        if(etag==false&&stag==true){
            time=System.currentTimeMillis()-time;
            System.out.println("The total time is:"+time+"ms!");
            etag=true;
            stag=false;
        }else{
            System.out.println("End failed! Time hasn't started or alread stop!");
        }
    }
    
    
    public static  void main(String [] args){
        MyTimeUtil mt=new MyTimeUtil();
        mt.reStart();//test for lock.
        mt.start();
        mt.start();//test for lock.
        mt.reStart();//test for lock.
        for(long i=0;i<(1<<24);i++){
            if(i%(1<<21)==0){
                System.out.println(mt.getTime());// get real time everytime.
            }
            if(i%(1<<23)==0){
                mt.disp(); //add to test for lock.
            }
        }
        mt.end();
        mt.end();//test for lock.
        mt.endAndDisp();//test for lock.
        mt.disp();
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-07-18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档