所以我运行某种类型的游戏,我想添加一个命令!uptime,显示自上次打开以来服务器运行的时间长短等等
此代码(来自微软网站)显示滴答计数并正确显示
int result = Environment.TickCount & Int32.MaxValue;
player.SendMessage("Result: " + result);
但我希望能够显示在几分钟内的持续时间。
答案 0 :(得分:2)
从MSDN documentation,我们可以看到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;
这可以让你在每隔几周Environment.TickCount
滚动时获得准确的正常运行时间,正如@Carlos指出的那样。
答案 1 :(得分:0)
32位有符号整数,包含以毫秒为单位的时间量 自上次启动计算机以来已经过去了。
因此除以1000得到秒,然后除以60得到分钟。
注意事物只有32位,因此每隔几周就会循环一次。
答案 2 :(得分:0)
使用TimeSpan
。
TimeSpan uptime = TimeSpan.FromMilliseconds(Environment.TickCount);
double totalMinutes = uptime.TotalMinutes;