便携式 Class 库 c# 中的十六进制时钟

Hexadecimal clock in Portable Class Library c#

我想在便携式 class 库中创建一个 class 来管理 true hexadecimal 时间的当前时间,而不仅仅是用十六进制数字表示的六十进制时间。

如果我想让使用它的程序能够实时更新自己,我最好的操作方法是什么?

这是我的考虑:

我不能使用标准 .NET 的许多功能,因为我希望它成为一个可移植的库。我是 .Net 4.5 的异步特性的新手,对简单的多线程应用程序有一些初步的经验。任何帮助将不胜感激。

您可以使用下面的转换器方法进行转换:

const int HexUnitsInDay = 16 * 16 * 16 * 16;
const int SecondsInDay = 24 * 60 * 60;

public static string ConvertToHexTime(TimeSpan tm)
{
  int hexTime = Convert.ToInt32(tm.TotalSeconds * HexUnitsInDay / SecondsInDay);
  return String.Format(".{0:X}", hexTime);
}

用法示例:

Console.WriteLine(ConvertToHexTime(DateTime.Now.TimeOfDay));

要定期更新屏幕,您可以使用系统定时器事件生成 class。

在 WPF 中,您可以为此使用 System.Windows.Threading.DispatcherTimer class,例如a clock in c# wpf application

在 Winforms 中,您可以使用 System.Windows.Forms.Timer class,例如Run a Digital Clock on your WinForm

在这两种情况下:将更新间隔设置为 1318 毫秒(这大致等于 SecondsInDay / HexUnitsInDay)。