如何获取TimeSpan的起始小时、初始小时与结束小时?
关于TimeSpan的“起始/最后小时”问题解答
嘿,这个问题得先掰扯清楚TimeSpan的核心本质——它本身只是一段时间间隔,比如“3小时20分钟”“2天15小时”,并不是一个有明确起止时间点的时间段(比如从上午10点到下午1点20分这种带开始和结束的时间范围)。所以严格来说,单独的TimeSpan变量是没有所谓“起始小时”“初始小时”或者“最后小时”的哦。
不过,如果你的需求是结合某个具体的起始DateTime,用TimeSpan来推导对应的起止小时,那完全可以实现!举个C#的实际代码例子:
// 先定义一个明确的起始时间点 DateTime startTime = new DateTime(2024, 5, 20, 9, 0, 0); // 2024年5月20日上午9点 // 你要用到的时间间隔 TimeSpan timeDuration = TimeSpan.FromHours(5.5); // 5个半小时 // 计算结束时间点 DateTime endTime = startTime + timeDuration; // 提取起始小时和结束小时 int startHour = startTime.Hour; // 结果是9 int endHour = endTime.Hour; // 结果是14(因为9+5.5=14.5,也就是下午2点30分)
要是你手里只有单独的TimeSpan(比如TimeSpan.FromHours(4)),那它就只是4小时的时长,没有绑定任何具体的时间点,自然没法提取“起始”或“最后”的小时。这种情况下,你得先明确这个时长对应的起始时间,才能进一步计算对应的小时信息。
内容的提问来源于stack exchange,提问作者Igor Formiga
相关产品推荐
相关产品推荐

