以 x 天、y 小时、z 分钟和 1 秒写出的两个 DateTime 之间的时间

问题描述 投票:0回答:1

我有一个使用 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 秒。 关于如何做到这一点有什么想法吗?

c#
1个回答
0
投票

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";
© www.soinside.com 2019 - 2024. All rights reserved.