获得准确的三分钟时间值 [英] Getting accurate three-minute time values

查看:201
本文介绍了获得准确的三分钟时间值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

要获得三分钟的时间值(例如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 = new DateTime(now.Year,now.Month,now.Day,now.Hour,now.Minute,0)
.AddMinutes(((now.Minute)/ 3)* 3 - 现在)
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是15.02.2012 08:00:00.000 
15.02.2012 07:59:58.000是15.02.2012 07:57:00.000

但是在第二行我错了 - 而不是15.02.2012 07:57:00.000必须是15.02 .2012 08:00:00.000。
如何解决这个错误?谢谢。

解决方案

您需要考虑以下几点:



$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $
$ ;
}


For getting three-minute time values (for example 15.02.2012 07:00:00, 15.02.2012 07:03:00, 15.02.2012 07:06:00,..., 15.02.2012 07:57:00) I use following code:

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;
        }

and use this in following code:

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"));
        }

And output :

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

But in second line I'm get mistake - instead 15.02.2012 07:57:00.000 must be 15.02.2012 08:00:00.000. How to fix this mistake? Thanks.

解决方案

You need to take into account seconds as the following:

static private DateTime CurrentTime (DateTime now)
{
    return now.Date.AddSeconds((now.TimeOfDay.TotalSeconds + 90) / 180 * 180);
}

这篇关于获得准确的三分钟时间值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆