none
DateTime.Now.Hour与DateTime.Now.TimeOfDay.Hours的区别 RRS feed

  • 问题

  • 如题。两个结果相同,区别在哪?

    DateTime.Now.Minute与DateTime.Now.TimeOfDay.Minutes

    DateTime.Now.Second与DateTime.Now.TimeOfDay.Seconds

    同样区别在哪?

    2010年5月10日 2:54

答案

  • 看来你还是没理解 DateTime 和 TimeSpan 的区别,一个是点,一个是段

    不过,我仔细翻了 MSDN, DateTime.TimeOfDay 这个 TimeSpan 确实有点特殊,不仅仅是”段“的意思,其实微软的出发点还是为了表示”没有日期的时间”,确实很容易令人混淆,不过切记 DateTime.TimeOfDay 表示的是只有不到一天的时间

    因为缺省的 DateTime 是含日期的,但 DateTime.TimeOfDay 没有,所以,假如你想比较两个时间是否一样而不关心具体日期那么就可以用 DateTime.TimeOfday 来比较了

    比如你关心两个事件是否在每天的下午3点发生


    问题要简单,错误须详细@错误/异常/堆栈信息+操作系统+软件版本+all the context of the issue Hope Helpful | http://www.leoworks.net
    2010年5月10日 9:11

全部回复

  • 虽然刚好他们值相同,但意义是不同的,是两个完全意义不同对象的属性

    注意到 DateTime.Now.TimeOfDay 的类型是 TimeSpan,TimeSpan 表示一个时间段,TimeSpan.Minutes 表示这个 TimeSpan 实例的 Minutes 分量,注意其分数形式,这个分钟分量实际是这个Timespan表示的时间段经过年、小时等整除之后的分钟余量,

    而 DateTime.Now 类型是 DateTime,DateTime 表示一个时间点,DateTime.Minute 表示这个时间点的分钟分量,也是一个时间点

    而 DateTime.TimeOfDay 表示这个 DateTime 时间点从零点消逝过的时间段,按上面说明 TimeSpane.Minutes 和 DateTime.Minute 两个分钟数都是一个”余数“,所以刚好相等

    而 DateTime.Now 表示当前时间点,不再累述

    其他属性 Hours Months Seconds 都是以此理解


    问题要简单,错误须详细@错误/异常/堆栈信息+操作系统+软件版本+all the context of the issue Hope Helpful | http://www.leoworks.net
    • 已建议为答案 mazhou 2010年5月10日 7:20
    2010年5月10日 3:49
  • 在什么情况下,需要区分使用?
    2010年5月10日 5:41
  • 当然了,楼上说的很清楚。一个点,一个是段。
    http://www.bndy.net
    2010年5月10日 5:52
  • 看来你还是没理解 DateTime 和 TimeSpan 的区别,一个是点,一个是段

    不过,我仔细翻了 MSDN, DateTime.TimeOfDay 这个 TimeSpan 确实有点特殊,不仅仅是”段“的意思,其实微软的出发点还是为了表示”没有日期的时间”,确实很容易令人混淆,不过切记 DateTime.TimeOfDay 表示的是只有不到一天的时间

    因为缺省的 DateTime 是含日期的,但 DateTime.TimeOfDay 没有,所以,假如你想比较两个时间是否一样而不关心具体日期那么就可以用 DateTime.TimeOfday 来比较了

    比如你关心两个事件是否在每天的下午3点发生


    问题要简单,错误须详细@错误/异常/堆栈信息+操作系统+软件版本+all the context of the issue Hope Helpful | http://www.leoworks.net
    2010年5月10日 9:11
  • 谢谢,貌似明白了!!!慢慢接触吧!
    2010年5月11日 3:22