【问题标题】:C# Check if a minute between two date timesC# 检查两个日期时间之间是否有一分钟
【发布时间】:2014-08-08 23:12:14
【问题描述】:

我正在努力检查两个日期时间之间是否至少有一分钟。我在 C# 中创建了一个游戏,并且每次执行此命令时都将游戏的一部分限制为每分钟一次 执行它运行一个void

问题是即使没有一分钟它也会这样做?

public void _CheckIfBeenAMinute
{
    string TimeStamp;

    using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor())
    {
        dbClient.setQuery("SELECT game_timestamp FROM users WHERE id=" + Session.Id + "");
        TimeStamp = dbClient.getString();
    }

    DateTime TimeStamp_Converted = Convert.ToDateTime(TimeStamp);

    if (TimeStamp_Converted > DateTime.UtcNow.AddMinutes(-1))
    {
        //It has been a minuted...
        //But the problem is, i it hasnt been it still does this?

        this.SendMessage("You have reached your limit today");
        return;
    }
}

编辑:我决定使用时间跨度。但是,当我尝试在时间跨度达到 60 后获取秒数时,它会重置吗?

【问题讨论】:

标签: c# datetime datetime-comparison


【解决方案1】:

试试

if ((DateTime.UtcNow - TimeStamp_Converted).TotalMinutes > 1)

【讨论】:

  • 我已将其更改为时间跨度,现在只是从日期时间中删除了时间跨度?但我有一个问题。在时间跨度上执行 .Seconds 时,它会在一分钟后重置为 0 吗?并且 .TotalMinutes 返回一个长小数
  • 对不起,我不明白你刚才评论了什么?
  • @AshSmith .Seconds 将只返回时间的秒部分。因此,如果 TimeSpan 是一分三十秒,它只会返回 30。TotalMinutes 会将该 TimeSpan 作为分钟返回。一分三十秒将是 1.5 TotalMinutes
  • @AshSmith 如果您只想要总秒数,请使用TotalSeconds
【解决方案2】:

应该是:

if (TimeStamp_Converted < DateTime.UtcNow.AddMinutes(-1))

【讨论】:

    猜你喜欢
    • 2020-02-26
    • 2013-04-11
    • 2022-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多