桌面时钟代码_二进制时钟代码实现(表驱动法)

本文介绍了如何实现二进制时钟,包括理解4行6列的二进制时钟布局以及用Java Swing完成桌面时钟代码。通过表驱动法简化了将十进制时间转换为二进制的过程,并提供了网页版二进制时钟的实现和访问链接。
摘要由CSDN通过智能技术生成

在openSuse系统桌面小部件中有一个二进制时钟,当时虽然了解二进制但也看不懂,后来还在火车上还遇到有人带二进制手表,作为程序员的我感觉很酷呀ヾ(゚∀゚ゞ)

f3b9ad348ae3d7ed10679cbe1d8e0b26.png
图1:Linux系统二进制时钟桌面部件(截图)

于是上网查了一下如何看二进制时钟,终于会看了ヾ(*´▽‘*)ノ

7094cba2e31a82c3c67482a2ce8dcef6.png
图2:0~9二进制与十进制对照表

4行6列版的二进制时钟,其中每格代表二进制的0或1,每列从上到下(4格)代表一个二进制数对应的十进制数(如图1时间为22:06:40,其中第一列0010=2,第二列0010=2,第三列为0000=0,第四列为0110=6,第五列为0100=4,第六列0000=0)

会看二进制时钟后,就想怎么用代码实现二进制时钟,怎么把时间转换为二进制时钟显示出来。

788cba16001b045fc68392573c1d9247.png
Java swing 二进制时钟

实现思路是将时间HHmmss中的每一位代表的二进制放到数组中,再将所有数组组成4行6列的二维数组,之后根据二维数组在界面中展示就可以了;

例:时间 12:34:56,其中1转换为[0 ,0, 0, 1],2转换为[0010],3转换为[0011],4转换为[0100],5转换为[0101],6转换为[0110],之后放到4行6列的二维数组中,最后在界面中展示。

// 12:34:56 二进制时钟二维数组
[
  [0, 0, 0, 0, 0, 0]
  [0, 0, 0, 1, 1, 1]
  [0, 1, 1, 0, 0, 1]
  [1, 0, 1, 0, 1, 0]
]
//[1, 2, 3, 4, 5, 6]

第一版完整实现代码(Java swing)

import java.awt.Color;
import java.awt.Graphics;
import java.text.SimpleDateFormat;
import java.util.Timer;
import java.util.TimerTask;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.LineBorder;

/**
 * BinaryClock
 * ---------------
 * [ 1 2:3 4:5 6 ]
 *  ---二进制时钟----
 * [ 0 0 0 0 0 0 ]
 * [ 0 0 0 1 1 1 ]
 * [ 0 1 1 0 0 1 ]
 * [ 1 0 1 0 1 0 ]
 * ---------------
 * @author www@yiynx.cn
 * @version 0.0.5
 */
public class BinaryClock extends JPanel
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值