2

我正在努力检查两个日期时间之间是否至少有一分钟。我在 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 后获得时间跨度的秒数时,它会重置吗?

4

2 回答 2

4

尝试

if ((DateTime.UtcNow - TimeStamp_Converted).TotalMinutes > 1)
于 2014-08-08T23:16:24.613 回答
1

它应该是:

if (TimeStamp_Converted < DateTime.UtcNow.AddMinutes(-1))
于 2014-08-08T23:16:38.210 回答