获得准确的三分钟时间值 [英] Getting accurate three-minute time values
本文介绍了获得准确的三分钟时间值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
要获得三分钟的时间值(例如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屋!
查看全文