winforms 如何使用DateTime根据pc中的当前时间将时间四舍五入n分钟?

yeotifhr  于 2022-11-25  发布在  其他
关注(0)|答案(1)|浏览(127)
DateTime RoundDown(DateTime date, TimeSpan interval)
        {
            return new DateTime(date.Ticks / interval.Ticks *
                interval.Ticks);
        }

使用它

DateTime currentTime = RoundDown(DateTime.Now, TimeSpan.FromMinutes(-5));

但是我想添加一个选项,它将检查当前PC时间,并且如果例如时间是22:51,则向下舍入到22:50,意味着向下舍入1。
比如我调用RoundDown方法:向下舍入();它将自动检查是否根据PC时间向下舍入1。
如果我叫它:RoundDown(日期时间.现在,时间跨度.从分钟(-5));那么它将向下舍入到5或我给予它的任何数字。

aiazj4mn

aiazj4mn1#

那就是:

public static void Main (string[] args) {
    Console.WriteLine(RoundDown(DateTime.Now, 5));
  }

  public static DateTime RoundDown(DateTime dt, int NearestMinuteInterval)
  {
    return new DateTime(dt.Year, dt.Month, dt.Day, dt.Hour, dt.Minute / NearestMinuteInterval * NearestMinuteInterval, 0);
  }

  public static DateTime RoundUp(DateTime dt, int NearestMinuteInterval)
  {
    return (new DateTime(dt.Year, dt.Month, dt.Day, dt.Hour, 0, 0)).AddMinutes((dt.Minute / NearestMinuteInterval + 1) * NearestMinuteInterval);
  }

相关问题