octobanana / peaclock

A responsive and customizable clock, timer, and stopwatch for the terminal.
https://octobanana.com/software/peaclock
MIT License
556 stars 26 forks source link

Binary clock represents decimal digits instead of actual time #9

Open rhodium88 opened 5 years ago

rhodium88 commented 5 years ago

Currently the binary clock shows the binary equivalent of each digit in the decimal representation of the time. For instance, 12 is represented as 01 0010; first the 1 is converted, and then the 2, with the results shown side-by-side. This is akin to representing 0xFF as "15 15" in decimal.

A more accurate method would be to convert the number rather than its constituent digits, so that 12 would be represented as 01100 on a 24 hour clock.

Perhaps a configuration option could allow users to choose between binary conversion of the digits in the decimal representation of the time, and binary conversion of the numbers in the time?

octobanana commented 5 years ago

The method used currently, where each binary column represents the value of a single clock digit, is an intentional design choice. The clock correctly and accurately displays the time as intended.

Representing the time using 3 binary values instead of 6 is a different design, it would not make the clock more accurate.

octobanana commented 4 years ago

The current binary clock implementation displays the clock in binary-coded decimal encoding. An option to display the binary clock where each unit of time, hour, minute, and seconds encoded as binary could be added as a configuration option.

There would be either 2 or 3 binary values shown, depending on if the seconds view is toggled on or off. The hour would need either 4 or 5 blocks to display the range 0 - 1100 in 12 hour mode or 00000 - 10111 in 24 hour mode. The minutes and seconds would need 6 blocks to display the range 000000 - 111011. I think a vertical layout would work best for utilizing the space. What do you think?

    |  | | | | < H
|  |  | | | | < M
|  |  | | | | < S
32 16 8 4 2 1