C# 查找程序的正常运行时间,但以分钟为单位显示
所以我运行了一些类型的游戏,我想添加一个命令!正常运行时间,显示服务器自上次打开以来运行的时间 此代码(来自microsoft网站)显示滴答数并正确显示C# 查找程序的正常运行时间,但以分钟为单位显示,c#,C#,所以我运行了一些类型的游戏,我想添加一个命令!正常运行时间,显示服务器自上次打开以来运行的时间 此代码(来自microsoft网站)显示滴答数并正确显示 int result = Environment.TickCount & Int32.MaxValue; player.SendMessage("Result: " + result); 但我希望能够在几分钟内显示它已运行了多长时间。来自: 一个32位有符号整数,包含以毫秒为单位的时间量 自从上次启动计
int result = Environment.TickCount & Int32.MaxValue;
player.SendMessage("Result: " + result);
但我希望能够在几分钟内显示它已运行了多长时间。来自:
一个32位有符号整数,包含以毫秒为单位的时间量
自从上次启动计算机以来,这种情况已经过去了
所以除以1000得到秒,再除以60得到分钟
请注意,它只有32位,因此每隔几周就会循环一次。从中,我们可以看到环境。TickCount
获取自系统启动以来经过的毫秒数
然后可以将其转换为分钟,如下所示:
var minutes = (Environment.TickCount - serverStartTickCount) / 60000; // 1000 ms/s * 60 s/m
<强>备选>,您可能需要考虑存储<代码> DATETIME。当服务器启动时,现在。假设您的类名为
程序
,您可以将其添加到该类中:
public static readonly DateTime ServerStartTime = DateTime.Now;
然后在运行命令时执行此操作:
var uptime = DateTime.Now - Program.ServerStartTime;
var minutes = uptime.TotalMinutes;
正如@Carlos所指出的那样,这将允许您在
环境下获得准确的正常运行时间。TickCount
每隔几周滚动一次。使用时间跨度
TimeSpan uptime = TimeSpan.FromMilliseconds(Environment.TickCount);
double totalMinutes = uptime.TotalMinutes;
关于滴答声,可能的重复与此类似,但我希望它在几分钟内显示出来@POX在我使用它的第一分钟,它显示“7891”,然后在我使用它的第二分钟,它显示“7892”。@C126您在寻找操作系统或游戏服务器的正常运行时间吗?我假设是后者——我已经相应地编写了代码。=)我认为这对我来说是个问题,我认为它显示了我的计算机的正常运行时间或者其他一些Idk lol,如果一个程序在另一台计算机上运行,有没有办法找出该程序运行了多长时间?比如vps,因为这是我用来主持游戏的@Roujo@C126如果你可以修改这个程序,那么你可以看看我文章的第二部分:让它在启动时存储当前的日期和时间,然后用它来响应!正常运行时间命令。=)好的,我如何在servers program.cs中创建变量
var start=DateTime.Now
,然后在command.cs中使用它,这样我就可以执行var uptime=DateTime.Now-start;SendMessage(“服务器正常运行时间:+Uptime.ToString())代码>或者我应该对此提出新的问题。下面的人评论了按照你所说做的代码,我再次评论“在它启动并使用的第一分钟,它显示为“7891”,然后在我使用它的第二分钟,它显示为“7892”。“我不知道为什么。而且这个游戏不是很受欢迎,它每天都会重新启动,所以我不介意循环。