我有一个使用 C# 的 Streamer.bot 程序,并且有一个计数器,如果发生某种死亡,我可以更新该计数器。我想要一个 Twitch 命令,提供有关上次事件的日期时间以及自那时以来已经过去了多少时间(以天、小时、分钟和秒为单位)的信息。
到目前为止,我设法将上次事件的日期时间保存在变量(DateTime)中。我也设法得到了差异,但格式是一个问题。
DateTime lastDraw = CPH.GetGlobalVar<DateTime>("Hanged last", true);
DateTime now = DateTime.Now;
string difference = Convert.ToString(now - lastDraw);
距离上次事件的时间:字符串差异变量的 00:07:59.2038479(这是大约 8 分钟过去后的结果)。这么说来,我好像快明白了? CPH 只是读取包含最后一个事件的 DateTime 变量的命令。 抱歉,我知道我绝对是 C# 菜鸟。 目标是消息是:自上次事件以来的时间:x 天、y 小时、z 分钟和 1 秒。 关于如何做到这一点有什么想法吗?
由 now - lastDraw
返回的
TimeSpan 结构体提供了
Days
、Hours
、Minutes
和 Seconds
属性。要访问这些属性,请首先将 now - lastDraw
保存到 TimeSpan
变量,而不是将表达式直接传递给 Convert.ToString
:
TimeSpan span = now - lastDraw;
然后您可以访问
span
的属性来构造您的字符串:
string difference = $"{span.Days} days, {span.Hours} hours, {span.Minutes} minutes and {span.Seconds} seconds";