java模拟电子表,打印火柴类型时间

模拟打印电子表

public class PrintTime {

public static void main(String[] args) {
    //通过Timer()实现定时1秒任务
// Timer timer = new Timer(); 
// timer.schedule(new TimerTask() { 
// @Override 
// public void run() { 
// Calendar calendar = Calendar.getInstance(); 
// Date date = calendar.getTime(); 
// printTime(date); 
// } 
// },1000,1000);

    //线程sleep(1000)控制时间,实现定时
    new Thread(new Runnable() {

        @Override
        public void run() {
            while(true){
                Calendar calendar = Calendar.getInstance();
                Date date = calendar.getTime();
                printTime(date);
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
    }).start();

}
//打印时间方法
public static void printTime(Date date){    
    SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
    String time = sdf.format(date);
    System.out.println(time);
    //inputIntList存放每个数字代表的轨迹组合int[]
    List<int[]> inputIntList = new LinkedList<int[]>();
    for(int i=0;i<time.length();i++){
        String a =String.valueOf(time.charAt(i));
        //将数字转化为相应的轨迹组合int[],并加到inputIntList中
        if(!a.equals(":")){
            inputIntList.add(matchNumberGenerator(a));  
        }
    }
//遍历inputIntList,打印数字
    Iterator<int[]> iterator = null;
    //5行,3列打印
    for(int i = 0; i < 5; i++){
        iterator = inputIntList.iterator();
        while(iterator.hasNext()){
            printNumber(iterator.next(),i*3,(i+1)*3);

        }
        System.out.println();
    }   
}
//将数字转化为相应的轨迹组合int[]
public static int[] matchNumberGenerator(String a){
    int result[] = null;
    switch(a){
    //"_"-->2 " "-->0 "|"-->1
    case "0":
        result = new int[]{0,2,0,1,0,1,1,0,1,1,0,1,1,2,1};
        //"' _ '| |'| |'| |'|_|".split(",");
        break;
    case "1":
        result = new int[]{0,0,0,0,0,1,0,0,1,0,0,1,0,0,1};
        //"'   '  |'  |'  |'  |".split(",");
        break;
    case "2":
        result = new int[]{0,2,0,0,0,1,0,2,1,1,0,0,1,2,0};
        //"' _ '  |' _|'|  '|_ ".split(",");
        break;
    case "3":
        result = new int[]{0,2,0,0,0,1,0,2,1,0,0,1,0,2,1};
        //"' _ '  |' _|'  |' _|".split(",");
        break;
    case "4":
        result = new int[]{0,0,0,1,0,1,1,2,1,0,0,1,0,0,1};
        //"'   '| |'|_|'  |'  |".split(",");
        break;
    case "5":
        result = new int[]{0,2,0,1,0,0,1,2,0,0,0,1,0,2,1};
        //"' _ '|  '|_ '  |' _|".split(",");
        break;
    case "6":
        result = new int[]{0,2,0,1,0,0,1,2,0,1,0,1,1,2,1};
        //"' _ '|  '|_ '| |'|_|".split(",");
        break;
    case "7":
        result = new int[]{0,2,0,0,0,1,0,0,1,0,0,1,0,0,1};
        //"' _ '  |'  |'  |'  |".split(",");
        break;
    case "8":
        result = new int[]{0,2,0,1,0,1,1,2,1,1,0,1,1,2,1};
        //"' _ '| |'|_|'| |'|_|".split(",");
        break;
    case "9":
        result = new int[]{0,2,0,1,0,1,1,2,1,0,0,1,0,2,1};
        //"' _ '| |'|_|'  |' _|".split(",");
        break;
    }
    return result;

}
//根据轨迹组合,打印相应数字
public static void printNumber(int[] numberArray, int arrayIndex, int arrayIndexEnd){
    for(int i = arrayIndex; i < arrayIndexEnd;i++){
        switch(numberArray[i]){
        //     "_"-->2     " "-->0      "|"-->1
        case 0:
            System.out.print(" ");
            break;
        case 1:
            System.out.print("|");
            break;
        case 2:
            System.out.print("_");
            break;
        }
    }
    System.out.print(" ");
}
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值