使用 Rust 實作「電子鐘」應用程式

建立專案

建立專案。

1
2
cargo new rust-digital-clock
cd rust-digital-clock

修改 Cargo.toml 檔,安裝依賴套件。

1
2
[dependencies]
chrono = "0.4"

實作

修改 main.rs 檔。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
use std::time::Duration;

use chrono::Local;

#[rustfmt::skip]
const DIGITS : [[&str; 11]; 7] = [
["┏━┓ "," ╻ "," ┏━┓ ", " ┏━┓ "," ╻ ╻ "," ┏━┓ "," ┏ "," ┏━┓ "," ┏━┓ "," ┏━┓ "," "],
["┃ ┃ "," ┃ "," ┃ ", " ┃ "," ┃ ┃ "," ┃ "," ┃ "," ┃ "," ┃ ┃ "," ┃ ┃ "," ╻ "],
["┃ ┃ "," ┃ "," ┃ ", " ┃ "," ┃ ┃ "," ┃ "," ┃ "," ┃ "," ┃ ┃ "," ┃ ┃ "," "],
["┃ ┃ "," ┃ "," ┏━┛ ", " ┣━┫ "," ┗━┫ "," ┗━┓ "," ┣━┓ "," ┃ "," ┣━┫ "," ┗━┫ "," "],
["┃ ┃ "," ┃ "," ┃ ", " ┃ "," ┃ "," ┃ "," ┃ ┃ "," ┃ "," ┃ ┃ "," ┃ "," "],
["┃ ┃ "," ┃ "," ┃ ", " ┃ "," ┃ "," ┃ "," ┃ ┃ "," ┃ "," ┃ ┃ "," ┃ "," ╹ "],
["┗━┛ "," ╹ "," ┗━━ ", " ┗━┛ "," ╹ "," ┗━┛ "," ┗━┛ "," ╹ "," ┗━┛ "," ┗━┛ "," "],
];

fn main() {
loop {
// 清除畫面
std::process::Command::new("clear").status().unwrap();
// 當前時間
let time = Local::now().format("%H:%M:%S").to_string();
for row in &DIGITS {
// 判讀時間
for c in time.chars() {
// 決定索引
let col = match c {
'0'..='9' => c as usize - '0' as usize,
':' => 10,
_ => 10,
};
// 印出數字
print!("{} ", row[col]);
}
// 換行
println!();
}
// 等待
std::thread::sleep(Duration::from_millis(1000))
}
}

啟動程式。

1
cargo run

程式碼

參考資料