如何计算"下一个"半小时或小时的剩余分钟数?

Wil*_*lem 2 .net c# datetime

我想计算"下一个"半小时或小时的剩余分钟数.

假设我得到一个开始时间字符串07:15,我希望它计算剩下的分钟到最近的半小时(07:30).

That would be 15min.
Run Code Online (Sandbox Code Playgroud)

然后我也可以有一个开始时间可以的实例,07:45我希望它计算到最近的小时的剩余分钟数(08:00).

That would also be 15min.
Run Code Online (Sandbox Code Playgroud)

因此,任何一小时内小于30分钟的字符串将计算到最接近的半小时(..:30),超过30分钟的任何字符串将计算到最接近的小时(..:00).

我不想做一堆if语句,因为我从时间字符串中获取可以从一小时开始和分钟.

这是我不想做的事情:

if (int.Parse(fromTimeString.Right(2)) < 30)
{
    //Do Calculation
}
else
{
    //Do Calculation
}

public static string Right(this String stringValue, int noOfCharacters)
{
    string result = null;

    if (stringValue.Length >= noOfCharacters)
    {
        result = stringValue.Substring(stringValue.Length - noOfCharacters,       noOfCharacters);
    }
    else
    {
        result = "";
    }

    return result;
}
Run Code Online (Sandbox Code Playgroud)

是否有更简单的方法与班级linq或与DateTime班级

Pio*_*cik 10

使用模数运算符%为30.您的结果将等于(60 - currentMinutes) % 30.关于LINQ它用于收藏,所以我不能真正看到它如何在你的情况下使用.