gpt4 book ai didi

c# - 如何在不格式化的情况下返回TimeSpan?

转载 作者:行者123 更新时间:2023-12-02 04:33:14 24 4
gpt4 key购买 nike

var timeSpan = new TimeSpan(10,130,10);

执行完上述代码后,timeSpan的值通常会被格式化为12:10:10

我是否有机会获得 10:130:10 的值(即没有格式化)?我在紧急情况下需要它。

最佳答案

我不相信在定义 TimeSpan 构造函数后有办法获得 10:130:10 。没有理由保留它们,因为众所周知,10 小时 + 130 分钟 + 10 秒等于 12:10:10。它是一个时间间隔,不单独保留时间分量。

来自TimeSpan(Int32, Int32, Int32) constructor ;

The specified hours, minutes, and seconds are converted to ticks, and that value initializes this instance.

让我们看看这个构造函数是如何定义的;

public TimeSpan(int hours, int minutes, int seconds)
{
_ticks = TimeToTicks(hours, minutes, seconds);
}

这就是 TimeToTicks 方法的实现方式;

internal static long TimeToTicks(int hour, int minute, int second)
{
long totalSeconds = (long)hour * 3600 + (long)minute * 60 + (long)second;
if (totalSeconds > MaxSeconds || totalSeconds < MinSeconds)
throw new ArgumentOutOfRangeException(null, Environment.GetResourceString("Overflow_TimeSpanTooLong"));
return totalSeconds * TicksPerSecond;
}

如您所见,此方法不保留构造函数参数(小时分钟)。它只是根据小时 * 3600 + 分钟 * 60 + 秒值计算totalseconds

关于c# - 如何在不格式化的情况下返回TimeSpan?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22576183/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com