当前位置:编程学习 > C#/ASP.NET >>

请教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;
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);
  }
}
--------------------编程问答-------------------- 跟borland c++程序中的unix时间(是自1970年1月1日午夜 12:00:00 经过的毫秒数)是同样的概念,
实际上在很多提供的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#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,