none
DateTime.Now.Ticks-DateTime.Now.Ticks为什么会得出-156250? RRS feed

  • 问题

  • RT,在即时窗口里不停的刷(DateTime.Now.Ticks-DateTime.Now.Ticks).ToString()会刷出一个-156250,请问这是怎么回事?
    2010年2月20日 1:44

答案

  • (DateTime.Now.Ticks-DateTime.Now.Ticks).ToString()
    

    这个式子效果和下面的是一样:

    DateTime cur = DateTime.Now;
    DateTime cur1 = DateTime.Now;
    (cur.Ticks-cur1.Ticks).ToString()
    可以很明显地看出,两个时间虽然都是
    DateTime.Now
    但是因为时间先后问题,他们并不是表示的同一个时间。

    笑骂由人,洒脱自如! 心若冰清,天塌不惊! http://www.iron-feet.cn
    • 已标记为答案 阿幻 2010年2月22日 8:31
    2010年2月20日 8:26

全部回复

  • 你好!

    因为,两个时间前者小于后者,所以是负数。注意这里出现的两个 DateTime.Now 并不是同一个时间。

    知识改变命运,奋斗成就人生!
    2010年2月20日 1:49
    版主
  • 请问Ticks跟millisecond换算比率是多少?

    2010年2月20日 2:49
  • 你好!

    MSDN是这样解释的:此属性的值表示自 0001 年 1 月 1 日午夜 12:00:00 以来已经过的时间的以 100 毫微秒为间隔的间隔数。

    另外 Ticks 是可以直接用来实例化 DateTime 的。如下:

    DateTime cur = DateTime.Now;
    DateTime curTmp = new DateTime(cur.Ticks);

    知识改变命运,奋斗成就人生!
    2010年2月20日 3:09
    版主
  • (DateTime.Now.Ticks-DateTime.Now.Ticks).ToString()
    

    这个式子效果和下面的是一样:

    DateTime cur = DateTime.Now;
    DateTime cur1 = DateTime.Now;
    (cur.Ticks-cur1.Ticks).ToString()
    可以很明显地看出,两个时间虽然都是
    DateTime.Now
    但是因为时间先后问题,他们并不是表示的同一个时间。

    笑骂由人,洒脱自如! 心若冰清,天塌不惊! http://www.iron-feet.cn
    • 已标记为答案 阿幻 2010年2月22日 8:31
    2010年2月20日 8:26