3分の時間値を取得するには(たとえば、15.02.2012 07:00:00、15.02.2012 07:03:00、15.02.2012 07:06:00、...正確な3分の時間値の取得
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
しかし、第二で、2012年2月15日午前7時57分00秒)私は、次のコードを使用します私は間違いを覚えています - 代わりに2005年2月15日07:57:00.000は15.02.2012 08:00:00.000でなければなりません。 この間違いを修正するには?ありがとう。
時間を最も近い3分の時間値に丸めます。これは問題ですか? –
私は最も近い3分値を切り捨てるのではなく、07:59:30.000と08:00:30.000の間の値の場合、最も近い3分に丸め(下または上)したい - 結果は08: 00:00.000 – amaranth
07:58:30.000から08:01:30.000までの時間は、08:00:00.000に切り上げる必要がありますか?私はこれに対する答えを掲示した。 –