便携式 Class 库 c# 中的十六进制时钟
Hexadecimal clock in Portable Class Library c#
我想在便携式 class 库中创建一个 class 来管理 true hexadecimal 时间的当前时间,而不仅仅是用十六进制数字表示的六十进制时间。
如果我想让使用它的程序能够实时更新自己,我最好的操作方法是什么?
这是我的考虑:
- 静态转换器 class 将标准 DateTime 转换为
结果十六进制时间(这可能很难用于实时更新自身的程序
- A class 通过将时间保持在 class 本身内来在十六进制时钟更改小时、分钟、秒等时调用事件(这可能会导致有损算术并损害时钟)
我不能使用标准 .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
)。
我想在便携式 class 库中创建一个 class 来管理 true hexadecimal 时间的当前时间,而不仅仅是用十六进制数字表示的六十进制时间。
如果我想让使用它的程序能够实时更新自己,我最好的操作方法是什么?
这是我的考虑:
- 静态转换器 class 将标准 DateTime 转换为 结果十六进制时间(这可能很难用于实时更新自身的程序
- A class 通过将时间保持在 class 本身内来在十六进制时钟更改小时、分钟、秒等时调用事件(这可能会导致有损算术并损害时钟)
我不能使用标准 .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
)。