diff --git a/Core/Utils.cs b/Core/Utils.cs new file mode 100644 index 0000000..566c6b1 --- /dev/null +++ b/Core/Utils.cs @@ -0,0 +1,55 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Core +{ + public class Utils + { + /// + /// Effettua arrotondamento di un timespan ad un dato step di minuti + /// + /// vedere qui: https://stackoverflow.com/questions/1393696/rounding-datetime-objects + /// + /// DataOra originale + /// Minuti di arrotondamento richeisti + /// Arrotondamento x difetto (floor = true) o eccesso (false) + /// + public static TimeSpan TSpanRounded(TimeSpan TSpanOrig, int roundMin, bool isFloor) + { + long ticks = 0; + roundMin = roundMin <= 0 ? 1 : roundMin; + TimeOnly step = new TimeOnly(0, roundMin); + if (isFloor) + { + ticks = TSpanOrig.Ticks / step.Ticks; + } + else + { + ticks = (TSpanOrig.Ticks + step.Ticks - 1) / step.Ticks; + } + TimeSpan answ = new TimeSpan(ticks * step.Ticks); + return answ; + } + + /// + /// Effettua arrotondamento di un timespan ad un dato step di minuti + /// + /// vedere qui: https://stackoverflow.com/questions/1393696/rounding-datetime-objects + /// + /// DataOra originale + /// Minuti di arrotondamento richeisti + /// + public static TimeSpan TSpanRounded(TimeSpan TSpanOrig, int roundMin) + { + long ticks = 0; + roundMin = roundMin <= 0 ? 1 : roundMin; + TimeOnly step = new TimeOnly(0, roundMin); + ticks = (TSpanOrig.Ticks + step.Ticks / 2) / step.Ticks; + TimeSpan answ = new TimeSpan(ticks * step.Ticks); + return answ; + } + } +} diff --git a/LiMan.Api/Resources/ChangeLog.html b/LiMan.Api/Resources/ChangeLog.html index 05f4dbf..7b8852f 100644 --- a/LiMan.Api/Resources/ChangeLog.html +++ b/LiMan.Api/Resources/ChangeLog.html @@ -1,6 +1,6 @@ License Manager -

Versione: 2.1.2501.1112

+

Versione: 2.1.2501.1309


Note di rilascio: