Can you round a .NET TimeSpan object?

后端 未结 10 948
渐次进展
渐次进展 2020-12-03 03:01

Can you round a .NET TimeSpan object?

I have a Timespan value of: 00:00:00.6193789

Is there a simple way to keep it a TimeSp

10条回答
  •  陌清茗
    陌清茗 (楼主)
    2020-12-03 03:28

    Here is a nice Extention-Method:

        public static TimeSpan RoundToSeconds(this TimeSpan timespan, int seconds = 1)
        {
            long offset = (timespan.Ticks >= 0) ? TimeSpan.TicksPerSecond / 2 : TimeSpan.TicksPerSecond / -2;
            return TimeSpan.FromTicks((timespan.Ticks + offset) / TimeSpan.TicksPerSecond * TimeSpan.TicksPerSecond);
        }
    

    And here are some Examples:

    DateTime dt1 = DateTime.Now.RoundToSeconds();  // round to full seconds
    DateTime dt2 = DateTime.Now.RoundToSeconds(5 * 60);  // round to full 5 minutes
    

提交回复
热议问题