在我的系统中,我在 Ticks 中存储了一个持续时间,它被传递到我的客户端移动应用程序,我想从那里将 ticks 转换为人类可读的形式。就我而言,天数、小时数和分钟数。
我的客户端移动应用程序是使用 Javascript 编码的,因此这就是我用来将持续时间转换为天/小时/分钟的方法。
最佳答案
在 C# .NET 中,一个滴答声代表一百纳秒,或百万分之一秒。 [Source] .
因此,为了根据滴答数(四舍五入到最接近的整数)计算天数,我首先通过乘以一千万来计算秒数,然后将其乘以秒数一天(每分钟 60 秒,每小时 60 分钟,一天 24 小时)。我使用模数运算符 (%) 来获取构成小时和分钟持续时间的余数。
var time = 3669905128; // Time value in ticks
var days = Math.floor(time/(24*60*60*10000000)); // Math.floor() rounds a number downwards to the nearest whole integer, which in this case is the value representing the day
var hours = Math.round((time/(60*60*10000000)) % 24); // Math.round() rounds the number up or down
var mins = Math.round((time/(60*10000000)) % 60);
console.log('days: ' + days);
console.log('hours: ' + hours);
console.log('mins: ' + mins);
因此,在上面的示例中,刻度数相当于 6 分钟(四舍五入)。
再举一个例子,有 2,193,385,800,000,000 个节拍,我们得到 2538 天 15 小时 23 分钟。
关于c# - 在 JavaScript 中将 C# .NET DateTime.ticks 转换为天/小时/分钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15486299/