52
1
using System;
2
3
public static class Program
4
{
5
//AI Copilot Improved Code
6
public static DateTime RoundToNearestMinuteProper(this DateTime dt, int rndmin, RoundingDirection directn)
7
{
8
if (rndmin <= 0)
9
return dt;
10
11
long ticksPerInterval = TimeSpan.FromMinutes(rndmin).Ticks;
12
long modTicks = dt.Ticks % ticksPerInterval;
13
14
long delta = 0;
15
switch (directn)
16
{
17
case RoundingDirection.Up:
18
delta = (modTicks == 0) ? 0 : ticksPerInterval - modTicks;
19
break;
20
case RoundingDirection.Down:
21
delta = -modTicks;
22
break;
23
case RoundingDirection.Nearest:
24
delta = (modTicks > ticksPerInterval / 2) ? ticksPerInterval - modTicks : -modTicks;
Cached Result