为了获取三分钟时间值(例如15.02.2012 07:00:00,15.02.2012 07:03:00,15.02.2012 07:06:00,...,15.02.2012 07:57:00),我使用以下代码:
static private DateTime CurrentTime (DateTime now)
        {
            DateTime val;
            val = new DateTime(now.Year, now.Month, now.Day, now.Hour, now.Minute, 0)
                    .AddMinutes(((now.Minute) / 3) * 3 - now.Minute);
            return val;
        }并在下面的代码中使用它:
static void Main(string[] args)
        {
            DateTime ts = new DateTime(2012, 2, 15, 08, 1, 0);
            DateTime ts1 = new DateTime(2012, 2, 15, 7, 59, 58);
            Console.WriteLine(ts.ToString("dd.MM.yyyy HH:mm:ss.fff") + " is " + CurrentTime(ts).ToString("dd.MM.yyyy HH:mm:ss.fff"));
            Console.WriteLine(ts1.ToString("dd.MM.yyyy HH:mm:ss.fff") + " is " + CurrentTime(ts1).ToString("dd.MM.yyyy HH:mm:ss.fff"));
        }和输出:
15.02.2012 08:01:00.000 is 15.02.2012 08:00:00.000
15.02.2012 07:59:58.000 is 15.02.2012 07:57:00.000但是在第二行我搞错了- 15.02.2012 07:57:00.000必须是15.02.2012 08:00:00.000。如何纠正这个错误?谢谢。
发布于 2012-02-15 13:57:39
需要考虑秒数,如下所示:
static private DateTime CurrentTime (DateTime now)
{
    return now.Date.AddSeconds((now.TimeOfDay.TotalSeconds + 90) / 180 * 180);
}https://stackoverflow.com/questions/9287819
复制相似问题