Ir al contenido principal

Vali-Range — Ejemplos

dotnet add package Vali-Range

ThisQuarter — Obtener el rango del trimestre actual

Recupera el rango de fechas que cubre el trimestre calendario actual en una sola llamada.

using Vali_Range.Core;

var vr = new ValiRange();

DateRange quarter = vr.ThisQuarter();

Console.WriteLine($"Quarter start: {quarter.Start:yyyy-MM-dd}"); // ej. → 2025-01-01
Console.WriteLine($"Quarter end: {quarter.End:yyyy-MM-dd}"); // ej. → 2025-03-31
Console.WriteLine($"Total days: {quarter.TotalDays}"); // → 90
Pruébalo en vivo

▶ Abrir en dotnetfiddle — Agrega el paquete NuGet Vali-Range en la configuración del fiddle.


Overlaps + Intersection — Detectar y extraer la superposición entre dos rangos

Comprueba si dos cronogramas de proyecto se superponen y luego extrae el período compartido exacto.

using Vali_Range.Core;

var vr = new ValiRange();

var projectA = vr.Create(new DateTime(2025, 1, 15), new DateTime(2025, 4, 30));
var projectB = vr.Create(new DateTime(2025, 3, 1), new DateTime(2025, 6, 30));

bool doOverlap = vr.Overlaps(projectA, projectB);
Console.WriteLine($"Overlap: {doOverlap}"); // → True

if (doOverlap)
{
DateRange shared = vr.Intersection(projectA, projectB);
Console.WriteLine($"Shared period: {shared.Start:yyyy-MM-dd}{shared.End:yyyy-MM-dd}");
// → 2025-03-01 → 2025-04-30
Console.WriteLine($"Shared days: {shared.TotalDays}"); // → 61
}
Pruébalo en vivo

▶ Abrir en dotnetfiddle — Agrega el paquete NuGet Vali-Range en la configuración del fiddle.


EachDay — Iterar sobre cada día de un rango

Enumera todos los días calendario dentro de un rango para generar un andamiaje de reporte diario.

using Vali_Range.Core;

var vr = new ValiRange();

var sprint = vr.Create(new DateTime(2025, 1, 6), new DateTime(2025, 1, 10));

Console.WriteLine("Sprint days:");
foreach (DateTime day in vr.EachDay(sprint))
{
Console.WriteLine($" {day:ddd, MMM dd yyyy}");
}

// → Mon, Jan 06 2025
// → Tue, Jan 07 2025
// → Wed, Jan 08 2025
// → Thu, Jan 09 2025
// → Fri, Jan 10 2025
Pruébalo en vivo

▶ Abrir en dotnetfiddle — Agrega el paquete NuGet Vali-Range en la configuración del fiddle.


Gaps — Encontrar períodos no cubiertos entre rangos

Dado una lista de rangos programados y un contenedor delimitador, encuentra todas las brechas no programadas.

using Vali_Range.Core;

var vr = new ValiRange();

// Contenedor de año completo
var year = vr.Create(new DateTime(2025, 1, 1), new DateTime(2025, 12, 31));

// Rangos de proyectos programados
var scheduled = new[]
{
vr.Create(new DateTime(2025, 1, 15), new DateTime(2025, 3, 31)),
vr.Create(new DateTime(2025, 5, 1), new DateTime(2025, 7, 31)),
vr.Create(new DateTime(2025, 9, 1), new DateTime(2025, 11, 30)),
};

var gaps = vr.Gaps(scheduled, year).ToList();

Console.WriteLine($"Unscheduled periods: {gaps.Count}");
foreach (var gap in gaps)
{
Console.WriteLine($" {gap.Start:MMM dd}{gap.End:MMM dd} ({gap.TotalDays} days)");
}

// → Jan 01 → Jan 14 (14 days)
// → Apr 01 → Apr 30 (30 days)
// → Aug 01 → Aug 31 (31 days)
// → Dec 01 → Dec 31 (31 days)
Pruébalo en vivo

▶ Abrir en dotnetfiddle — Agrega el paquete NuGet Vali-Range en la configuración del fiddle.