请教DateTime中的Ticks属性是什么意思?
看程序时见到了Ticks属性,但不明白是什么意思.查了一下msdn,说是"获取表示此实例的日期和时间的刻度数"。然后又说是"此属性的值表示自 0001 年 1 月 1 日午夜 12:00:00 以来已经过的时间的以 100 毫微秒为间隔的间隔数。"可我对这个属性还是没有直观的概念,大家有能不能给我举例说明一下这个属性,谢谢了. --------------------编程问答-------------------- 是一个很大的长整数,单位是 100 毫微秒。表示自 0001 年 1 月 1 日午夜 12:00:00 以来已经过的时间的以 100 毫微秒为间隔的间隔数,已经说得很清楚了,如果单位是秒或天 LZ 可以就更容易理解了。 --------------------编程问答-------------------- 1 毫秒 = 10^-3 秒,1 微秒 = 10^-6 秒,
1 毫微秒 = 10^-9 秒,
100 毫微秒 = 10^-7 秒。 --------------------编程问答-------------------- Tick可以理解为最小时间单位 --------------------编程问答-------------------- 就是一个时间差 --------------------编程问答-------------------- Console.WriteLine(DateTime.Now.Ticks); // 输出:633603924670937500
--------------------编程问答-------------------- Console.WriteLine(DateTime.Now.Ticks); // 输出:633603924670937500
也就是说,从0001 年 1 月 1 日午夜 12:00:00 以来到现在已经过了 633603924670937500 * 10^-7 秒。
--------------------编程问答-------------------- 获取表示此实例的日期和时间的刻度数。
此属性的值表示自 0001 年 1 月 1 日午夜 12:00:00 以来已经过的时间的以 100 毫微秒为间隔的间隔数。
表示此实例的日期和时间的刻度数。该值介于 MinValue 和 MaxValue 之间。 --------------------编程问答-------------------- 哦,谢谢大家的解答,我已经知道ticks属性是什么意思了,但它有什么作用了,一般在什么情况下需要用到这个属性? --------------------编程问答-------------------- 没什么用,除非需要很精确地知道从那时(1年1月1日)开始过了多少时间。 --------------------编程问答-------------------- 比如精确地计算两个时间差时(想知道某段程序运行了多少毫微秒)就可以用到。 --------------------编程问答--------------------
using System;--------------------编程问答-------------------- 跟borland c++程序中的unix时间(是自1970年1月1日午夜 12:00:00 经过的毫秒数)是同样的概念,
using System.Collections.Generic;
class Sentence
{
static void Main()
{
long ticks0 = DateTime.Now.Ticks;
for (int i = 0; i < int.MaxValue; i++)
{
// ...
}
long ticks1 = DateTime.Now.Ticks;
long n = (ticks1 - ticks0) * 100;
Console.WriteLine("上面这段程序运行了{0}毫微秒", n);
}
}
实际上在很多提供的DateTime等类的处理上用到,在现在的很多上层应用上基本很少用到。 --------------------编程问答-------------------- 转换成秒比用毫微秒更直观些:
using System;--------------------编程问答-------------------- 不好意思,上面理解有问题,见笑 --------------------编程问答-------------------- 上面这段程序在我的机器上的输出是:
using System.Collections.Generic;
class Sentence
{
static void Main()
{
long ticks0 = DateTime.Now.Ticks;
for (int i = 0; i < int.MaxValue; i++)
{
// ...
}
long ticks1 = DateTime.Now.Ticks;
double n = (ticks1 - ticks0) / 10000000.0;
Console.WriteLine("上面这段程序运行了{0}秒", n);
}
}
上面这段程序运行了2.46875秒 --------------------编程问答-------------------- 最小时间单位
很精确的值
补充:.NET技术 , C#