我有一个时间刻度(635655080937662522)我用C#创建并存储在数据库列中。如何验证此值是否为刻度而不是其他值?刻度线是否具有某种格式?
答案 0 :(得分:3)
正如其他人所说,滴答只是一个数字,但有一些重要的差异,取决于蜱的来源。
来自DateTime
或DateTimeOffset
的蜱每个100ns,范围从DateTime.MinValue.Ticks
到DateTime.MaxValue.Ticks
,即0
到{{1 }}。请注意,这比3155378975999999999
小得多。
来自Int64.MaxValue
的蜱每个也是100ns,但范围从TimeSpan
到TimeSpan.MinValue.Ticks
,这与TimeSpan.MaxValue.Ticks
的范围相同,这是Int64
的范围。 -9223372036854775808
至9223372036854775807
。
来自Stopwatch
(在System.Diagnostics
名称空间中)的标记具有不同的大小,具体取决于系统的硬件功能。在现代硬件上,它们通常约为4ns。您可以使用TimeSpan
代替Stopwatch.Elapsed.Ticks
,或在计算中考虑Stopwatch.Frequency
,将其调整为Stopwatch.ElaspedTicks
个刻度。范围为0
到Int64.MaxValue
。
答案 1 :(得分:2)
勾选是一个数字,你可以做的确实没有更多的验证。
您可以检查实际时间是否在特定范围内,对您的案例有意义,但它是特定于应用程序的。