README_EN.md
⏰ Clock
⏰ Simple Clock App for Windows Vista / 7 / 8 / 8.1 / 10 / 11 / Linux x64 / Linux Arm / Linux Arm64 / Linux Bionic Arm64 / OSX Arm64 (Apple Silicon) / OSX x64 (Intel CPU, 10.12 or later)
🌱 **Memory Usage 20-30MB / Runs at a few percent of CPU! **
📦 Simple and fast clock
✅ Features
- ✅ Lightweight design (20-30MB memory!)
- ⚡ Fast startup and operation
- 🖥️ Simple UI
- 🎨 Wide compatibility from Windows to MacOSX (10.12 and above)
💻 Supported Environments
| OS | Compatibility |
|---|---|
| .NET Framework 3.5 Windows Vista | ✅ Supported |
| .NET Framework 3.5 Windows 7 | ✅ Supported |
| .NET Framework 3.5 Windows 8 | ✅ Supported |
| .NET Framework 3.5 Windows 8.1 | ✅ Supported |
| .NET Framework 3.5 Windows 10 | ✅ Supported |
| .NET Framework 3.5 Windows 11 | ✅ Support confirmed |
| .NET 8.0 Windows 10 | ✅ Supported |
| .NET 8.0 Windows 11 | ✅ Support confirmed (x64 only, x86 and Arm64 not tested) |
| .NET 8.0 Linux x64 | ✅ Supported |
| .NET 8.0 Linux Arm | ✅ Supported |
| .NET 8.0 Linux Arm64 | ✅ Support confirmed |
| .NET 8.0 Linux Bionic Arm64 | ✅ Supported |
| .NET 8.0 Mac OSX Arm64 (Apple Silicon) | ✅ Supported |
| .NET 8.0 Mac OSX x64 (Intel CPU) | ✅ Supported |
- Windows XP is not supported (may work)
- Mac OSX 10.12 and below are not supported
- .NET 8.0 Windows 10 is Version 2004 (Build 19041) and below will not launch.
📷 Screenshot
Clock-CLI launching on Windows 11 (v1.0.0)
🔧 Download
▶ Download the latest version here:
👉 https://sakuzyokun.github.io/Clock-CLI/
📜 License and Modification Information
You are free to modify and redistribute Clock!
However, please include the following statement in your README.md or the first comment in your source code:
// Clock-CLI was created by sakuzyokunAlso, please change the app icon when distributing it.
🙏 About Updates
Currently, updates are irregular.
We welcome bug reports and feedback, so please feel free to do so!
🔗 Links
- Homepage: sakuzyokun.github.io
- Please also check out other projects!
© Sakuzyo-kun – 2026
README.md
⏰ Clock
🎨 特定の数字で色が変わるようになっています! 提案があったらIssuesに書いてね!
⏰ シンプル時計アプリ for Windows Vista / 7 / 8 / 8.1 / 10 / 11/ Linux x64 / Linux Arm / Linux Arm64 / Linux Bionic Arm64 / OSX Arm64(Apple Silicon) / OSX x64(Intel CPU, 10.12以上)
🌱 メモリ使用量 20〜30MB / CPU数%で動作!
📦 シンプル・高速な時計
✅ 特徴
- ✅ 軽量設計(メモリ20〜30MB!)
- ⚡ 高速起動&動作
- 🖥️ シンプルUI
- 🎨 Windows~MacOSX(10.12以上) まで幅広く対応
- 🖥️ Minimal 版 : サイズが固定されているWindows XP ~ Windows 8.1 のコマンドプロンプトや 解像度の低いPCにおすすめ
💻 対応環境
| OS | 対応状況 |
|---|---|
| .NET Framework 3.5 Windows XP | ✅ 対応確認済み |
| .NET Framework 3.5 Windows Vista | ✅ 対応 |
| .NET Framework 3.5 Windows 7 | ✅ 対応 |
| .NET Framework 3.5 Windows 8 | ✅ 対応 |
| .NET Framework 3.5 Windows 8.1 | ✅ 対応 |
| .NET Framework 3.5 Windows 10 | ✅ 対応 |
| .NET Framework 3.5 Windows 11 | ✅ 対応確認済み |
| .NET 8.0 Windows 10 | ✅ 対応 |
| .Net 8.0 Windows 11 | ✅ 対応確認済み (x64のみ確認, Arm64未確認) |
| .NET 8.0 Linux x64 | ✅ 対応 |
| .NET 8.0 Linux Arm | ✅ 対応 |
| .NET 8.0 Linux Arm64 | ✅ 対応確認済み |
| .NET 8.0 Linux Bionic Arm64 | ✅ 対応 |
| .NET 8.0 Mac OSX Arm64 (Apple Silicon) | ✅ 対応 |
| .NET 8.0 Mac OSX x64 (Intel CPU) | ✅ 対応 |
※ ~ Windows 2000 は非対応です
※ Macは OSX 10.12 以下は非対応です
※ Windows 10 で .NET 8.0 を動作させる場合 Version 2004 (Build 19041) 以下は起動しません
📷 スクリーンショット
Windows 11 で Clock-CLI を起動した様子 (v1.0.0)
📦 実行方法
Linux の実行方法は特殊です
- ダウンロードしたファイルのフォルダに移動 (
cd /home/ユーザー名/Downloadcd /home/ユーザー名/ダウンロードなど) - 実行権限を与える (
chmod +x Clock-CLI_Linux*) - 実行する (
./Clock-CLI_Linux*)
(もしかしたら Mac も同じかも?)
🔧 ダウンロード
▶ 最新版はこちらからダウンロード:
👉 https://sakuzyokun.github.io/Clock-CLI/
📜 ライセンス・改造について
Clockは自由に改造・再配布してOKです!
ただし、以下の一文をREADME.mdやソースコードの先頭コメント**に明記してください:
// Clock-CLI was created by sakuzyokunまた、アプリアイコンは配布する際、変更してください
🙏 更新について
現在は不定期更新です。
バグ報告やフィードバックは受け付けているので、お気軽にどうぞ!
🔗 リンク
- ホームページ: sakuzyokun.github.io
- 他のプロジェクトもぜひ見てね!
© Sakuzyo-kun – 2026
Code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
namespace Clock_CLI
{
internal class Program
{
static int lastWidth = Console.WindowWidth;
static int lastHeight = Console.WindowHeight;
static void Main(string[] args)
{
RunClock();
}
private static void RunClock()
{
while (true)
{
// リサイズ検知
if (Console.WindowWidth != lastWidth ||
Console.WindowHeight != lastHeight)
{
Console.Clear();
lastWidth = Console.WindowWidth;
lastHeight = Console.WindowHeight;
}
GetTime();
Console.SetCursorPosition(0, 0);
}
}
static void DrawProgressBar(double percent)
{
int barWidth = 100;
int filled = (int)(percent / 100 * barWidth);
Console.ForegroundColor = ConsoleColor.Green;
Console.Write("Progress: [" + percent.ToString("0.0000") + "%]");
Console.ResetColor();
Console.Write(" [");
for (int i = 0; i < barWidth; i++)
{
if (i < filled)
{
Console.Write("#");
}
else
{
Console.Write(".");
}
}
Console.ResetColor();
Console.Write("] ");
}
private static void GetTime()
{
Console.ForegroundColor = ConsoleColor.Yellow;
Console.WriteLine("Clock-CLI");
DateTime localTime = DateTime.Now;
string hour = DateTime.Now.ToString("HH");
string minute = DateTime.Now.ToString("mm");
string sec = DateTime.Now.ToString("ss");
string millisec = DateTime.Now.ToString("fff");
string year = DateTime.Now.Year.ToString();
string month = DateTime.Now.ToString("MM");
string day = DateTime.Now.ToString("dd");
DateTime utc = DateTime.UtcNow;
DateTime epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
long unixSeconds = (long)(utc - epoch).TotalSeconds;
long unixMillis = (long)(utc - epoch).TotalMilliseconds;
string[] bigDigits = { " \r\n ## \r\n# # \r\n# # \r\n# # \r\n# # \r\n# # \r\n ## \r\n \r\n \r\n ", " \r\n # \r\n ## \r\n # \r\n # \r\n # \r\n # \r\n # \r\n \r\n \r\n ", " \r\n ## \r\n# # \r\n # \r\n # \r\n # \r\n# \r\n#### \r\n \r\n \r\n ", " \r\n ## \r\n# # \r\n # \r\n ## \r\n # \r\n# # \r\n ## \r\n \r\n \r\n ", " \r\n ## \r\n ## \r\n # # \r\n # # \r\n# # \r\n##### \r\n # \r\n \r\n \r\n ", " \r\n#### \r\n# \r\n### \r\n # \r\n # \r\n# # \r\n ## \r\n \r\n \r\n ", " \r\n ## \r\n# # \r\n# \r\n### \r\n# # \r\n# # \r\n ## \r\n \r\n \r\n ", " \r\n#### \r\n # \r\n # \r\n # \r\n # \r\n # \r\n # \r\n \r\n \r\n ", " \r\n ## \r\n# # \r\n# # \r\n ## \r\n# # \r\n# # \r\n ## \r\n \r\n \r\n ", " \r\n ## \r\n# # \r\n# # \r\n ### \r\n # \r\n# # \r\n ## \r\n \r\n \r\n " };
string[][] bigDigitsLines = new string[10][];
string[] colon = new string[]
{
" ",
" ",
" ## ",
" ",
" ",
" ",
" ",
" ## ",
" ",
" ",
" "
};
string[] slash = new string[]
{
" # ",
" # ",
" # ",
" # ",
" # ",
" # ",
"# ",
"# ",
" ",
" ",
" "
};
for (int i = 0; i < 10; i++)
{
bigDigitsLines[i] = bigDigits[i].Split(new[] { "\r\n" }, StringSplitOptions.None);
}
Console.ResetColor();
Console.WriteLine("\n\nTime is");
int lines = bigDigitsLines[0].Length;
for (int line = 0; line < lines; line++)
{
// 時
for (int d = 0; d < hour.Length; d++)
{
if (DateTime.Now.Hour == 3 && DateTime.Now.Minute == 9)
{
Console.ForegroundColor = ConsoleColor.Cyan;
}
else
{
Console.ResetColor();
}
int n = hour[d] - '0';
Console.Write(bigDigitsLines[n][line]);
}
// コロン
Console.ResetColor();
Console.Write(colon[line]);
// 分
for (int d = 0; d < minute.Length; d++)
{
if (DateTime.Now.Minute == 39)
{
Console.ForegroundColor = ConsoleColor.Cyan;
}
else if (DateTime.Now.Hour == 3 && DateTime.Now.Minute == 9)
{
Console.ForegroundColor = ConsoleColor.Cyan;
}
else if (DateTime.Now.Minute == 3 && DateTime.Now.Second == 9)
{
Console.ForegroundColor = ConsoleColor.Cyan;
}
else
{
Console.ResetColor();
}
int n = minute[d] - '0';
Console.Write(bigDigitsLines[n][line]);
}
// コロン
Console.ResetColor();
Console.Write(colon[line]);
// 秒
for (int d = 0; d < sec.Length; d++)
{
if (DateTime.Now.Second == 39)
{
Console.ForegroundColor = ConsoleColor.Cyan;
}
else if (DateTime.Now.Minute == 3 && DateTime.Now.Second == 9)
{
Console.ForegroundColor = ConsoleColor.Cyan;
}
else
{
Console.ResetColor();
}
int n = sec[d] - '0';
Console.Write(bigDigitsLines[n][line]);
}
// コロン
Console.ResetColor();
Console.Write(colon[line]);
// ミリ秒
for (int d = 0; d < millisec.Length; d++)
{
Console.ResetColor();
int n = millisec[d] - '0';
Console.Write(bigDigitsLines[n][line]);
}
Console.WriteLine();
}
Console.WriteLine("\n\nDate is");
for (int line = 0; line < lines; line++)
{
// 年
for (int d = 0; d < year.Length; d++)
{
int n = year[d] - '0';
Console.Write(bigDigitsLines[n][line]);
}
// スラッシュ
Console.ResetColor();
Console.Write(slash[line]);
// 月
for (int d = 0; d < month.Length; d++)
{
if (DateTime.Now.Month == 3 && DateTime.Now.Day == 9)
{
Console.ForegroundColor = ConsoleColor.Cyan;
}
else
{
Console.ResetColor();
}
int n = month[d] - '0';
Console.Write(bigDigitsLines[n][line]);
}
// スラッシュ
Console.ResetColor();
Console.Write(slash[line]);
// 日
for (int d = 0; d < day.Length; d++)
{
if (DateTime.Now.Month == 3 && DateTime.Now.Day == 9)
{
Console.ForegroundColor = ConsoleColor.Cyan;
}
else
{
Console.ResetColor();
}
int n = day[d] - '0';
Console.Write(bigDigitsLines[n][line]);
}
Console.WriteLine();
}
Console.ForegroundColor = ConsoleColor.White;
Console.WriteLine("\n\n");
Console.WriteLine($"Local Time: {localTime}");
Console.WriteLine($"UTC Time: {localTime.ToUniversalTime()}");
Console.WriteLine($"Unix Time: {unixSeconds} sec \n {unixMillis} ms");
Console.WriteLine($"Timezone: {TimeZoneInfo.Local.DisplayName} + {TimeZoneInfo.Local.StandardName}");
double percent =
DateTime.Now.TimeOfDay.TotalSeconds /
TimeSpan.FromDays(1).TotalSeconds * 100;
Console.WriteLine("\nToday's Progress:");
DrawProgressBar(percent);
}
}
}


コメント