用液晶数字方式打印当前时间(java)

偶然看到这样一道题目,用最简单最直接的方式随手写了一遍,代码就要敲着玩。。。

public class Test {

    public static void main(String[] args) {
        SimpleDateFormat sd = new SimpleDateFormat("HHmm");
        String time = sd.format(new Date());
        int first = Integer.parseInt(time.substring(0,1));
        int second = Integer.parseInt(time.substring(1,2));
        int third = Integer.parseInt(time.substring(2,3));
        int forth = Integer.parseInt(time.substring(3));
        System.out.println(printOne(first)+" "+printOne(second)+"  "+printOne(third)+" "+printOne(forth));
        System.out.println(printTwo(first)+" "+printTwo(second)+" ."+printTwo(third)+" "+printTwo(forth));
        System.out.println(printThree(first)+" "+printThree(second)+"  "+printThree(third)+" "+printThree(forth));
        System.out.println(printFour(first)+" "+printFour(second)+" ."+printFour(third)+" "+printFour(forth));
        System.out.println(printFive(first)+" "+printFive(second)+"  "+printFive(third)+" "+printFive(forth));
    }

    public static String printOne(int i){
        String str = "";
        if (i == 1 || i == 4){
            str = "    ";
        }else{
            str = " -- ";
        }
        return str;
    }

    public static String printTwo(int i){
        String str = "";
        if (i == 1 || i == 2 || i == 3 || i == 7){
            str = "   |";
        }else if (i == 0 || i == 4 || i == 8 || i == 9){
            str = "|  |";
        }else{
            str = "|   ";
        }
        return str;
    }

    public static String printThree(int i){
        String str = "";
        if (i == 0 || i == 1 || i == 7){
            str = "    ";
        }else{
            str = " -- ";
        }
        return str;
    }

    public static String printFour(int i){
        String str = "";
        if (i == 2){
            str = "|   ";
        }else if (i == 0 || i == 6 || i == 8){
            str = "|  |";
        }else{
            str = "   |";
        }
        return str;
    }

    public static String printFive(int i){
        String str = "";
        if (i == 1 || i == 4 || i == 7){
            str = "    ";
        }else{
            str = " -- ";
        }
        return str;
    }

}

附上效果图:

确实比较丑了。。。

模拟实现一个多功能电子设备,它既能播放mp3歌曲,同时还能够借助播放器的界面来监测脉动。 1.这个设备有一个屏幕,屏幕上可以显示两种界面: 界面1是显示视图,有一个进度条,可以显示当前所播放音乐的节拍或是脉动,以节拍为例,比如是100 BPM 还是 120BPM(BPM是节拍的度量单位)。还有一个文本,显示“Current BPM: xxx”. 界面2是控制视图,上面的控件有: 1)有一个菜单条,上面有一个菜单,菜单里有“start”、“stop”和“quit”命令。 2)有一个输入框,旁边的文本为"Enter BPM:",可以在输入框内容输入特定的节拍。 3)有一个“set”按钮,可以改变每分钟的节拍数。 4)还有两个微调箭头按钮“<<”和“>>”,使用这两个按钮可以微调节拍的值。 注意,选择“start”开始产生节拍,选择“stop”停止产生节拍。在选择开始产生节拍时,stop都应该是无效的,但是节拍产生后,start应该是无效的。 2.该设备配有一个控制器,控制mp3播放,存储播放歌曲的数据和节拍状态,并包含播放mp3的逻辑。 3.该设备还可以监测脉动。 4.在播放MP3时,在界面2上调整节拍后,会调整mp3播放器歌曲的节拍,同时界面1上显示当前歌曲的节拍状态。 5.在做监测脉动时,屏幕界面2上所有的设置按钮都是无效的,因为我们不能去设置脉动。 总之,希望界面可以复用,希望模型数据的变化能够反映到界面上 看看能不能使用观察者模式、策略模式、适配模式,另外设计时将界面显示view、控制controler、模型model分开
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值