查找程序的正常运行时间,但以分钟为单位显示
本文关键字:分钟 为单位 显示 运行时间 程序 查找 | 更新日期: 2023-09-27 18:33:12
所以我运行某种类型的游戏,我想添加一个命令!uptime,显示自上次打开以来服务器运行了多长时间或其他什么
此代码(来自微软网站)显示刻度计数并正确显示
int result = Environment.TickCount & Int32.MaxValue;
player.SendMessage("Result: " + result);
但我希望能够以分钟为单位显示它已经启动了多长时间。
从 MSDN 文档中,我们可以看到Environment.TickCount
获取自系统启动以来经过的毫秒数。
然后,您可以将其转换为分钟,如下所示:
var minutes = (Environment.TickCount - serverStartTickCount) / 60000; // 1000 ms/s * 60 s/m
或者,您可能需要考虑在服务器启动时存储DateTime.Now
。假设你的类叫做Program
,你可以把这个添加到其中:
public static readonly DateTime ServerStartTime = DateTime.Now;
然后在运行命令时执行此操作:
var uptime = DateTime.Now - Program.ServerStartTime;
var minutes = uptime.TotalMinutes;
正如@Carlos指出的那样,这将使您在Environment.TickCount
每隔几周滚动一次时获得准确的正常运行时间。
从参考文档中:
一个 32 位有符号整数,包含以毫秒为单位的时间量 自上次启动计算机以来已经过去了。
所以除以 1000 得到秒,然后 60 得到分钟。
请注意,它只有 32 位,因此每隔几周循环一次。
使用TimeSpan
.
TimeSpan uptime = TimeSpan.FromMilliseconds(Environment.TickCount);
double totalMinutes = uptime.TotalMinutes;