我怎样才能圆了的时候到最近的X分钟? [英] How can I round up the time to the nearest X minutes?

查看:128
本文介绍了我怎样才能圆了的时候到最近的X分钟?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有没有四舍五入的简单的功能UP 的DateTime 到最近的15分钟?

例如

2011-08-11 16:59 变成 2011-08-11 17:00

2011-08-11 17点保持为 2011-08-11 17点

2011-08-11 17:01 变成 2011-08-11 17:15


解决方案

  DateTime的综合报告(DT日期时间,时间跨度四)
{
    返回新的datetime(((dt.Ticks + d.Ticks - 1)/ d.Ticks)* d.Ticks);
}

例如:

  VAR DT1 =综合报告(DateTime.Parse(2011-08-11 16:59),TimeSpan.FromMinutes(15));
// DT1 == {11/08/2011 17:00:00}VAR DT2 =综合报告(DateTime.Parse(2011-08-11 17:00),TimeSpan.FromMinutes(15));
// DT2 == {11/08/2011 17:00:00}VAR DT3 =综合报告(DateTime.Parse(2011-08-11 17:01),TimeSpan.FromMinutes(15));
// DT3 == {11/08/2011十七时15分○○秒}

Is there a simple function for rounding UP a DateTime to the nearest 15 minutes?

E.g.

2011-08-11 16:59 becomes 2011-08-11 17:00

2011-08-11 17:00 stays as 2011-08-11 17:00

2011-08-11 17:01 becomes 2011-08-11 17:15

解决方案

DateTime RoundUp(DateTime dt, TimeSpan d)
{
    return new DateTime(((dt.Ticks + d.Ticks - 1) / d.Ticks) * d.Ticks);
}

Example:

var dt1 = RoundUp(DateTime.Parse("2011-08-11 16:59"), TimeSpan.FromMinutes(15));
// dt1 == {11/08/2011 17:00:00}

var dt2 = RoundUp(DateTime.Parse("2011-08-11 17:00"), TimeSpan.FromMinutes(15));
// dt2 == {11/08/2011 17:00:00}

var dt3 = RoundUp(DateTime.Parse("2011-08-11 17:01"), TimeSpan.FromMinutes(15));
// dt3 == {11/08/2011 17:15:00}

这篇关于我怎样才能圆了的时候到最近的X分钟?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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