查找程序的正常运行时间,但在MINUTES中显示

时间:2016-02-04 20:15:00

标签: c#

所以我运行某种类型的游戏,我想添加一个命令!uptime,显示自上次打开以来服务器运行的时间长短等等

此代码(来自微软网站)显示滴答计数并正确显示

        int result = Environment.TickCount & Int32.MaxValue;
        player.SendMessage("Result: " + result);

但我希望能够显示在几分钟内的持续时间

3 个答案:

答案 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)

来自reference docs

  

32位有符号整数,包含以毫秒为单位的时间量   自上次启动计算机以来已经过去了。

因此除以1000得到秒,然后除以60得到分钟。

注意事物只有32位,因此每隔几周就会循环一次。

答案 2 :(得分:0)

使用TimeSpan

TimeSpan uptime = TimeSpan.FromMilliseconds(Environment.TickCount);
double totalMinutes = uptime.TotalMinutes;