您的位置:首页 > 编程语言 > Java开发

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

2017-10-28 15:25 169 查看
模拟打印电子表

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<
a323
/span>,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(" ");
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java