Everything you need for precise time handling
Built for .NET developers who need accurate date, time, and timezone operations.
Vali-Time
High-precision time unit conversions with decimal accuracy. Convert between milliseconds, seconds, minutes, hours, days and more. Format, clamp, compare and break down durations.
Vali-Date
Full date arithmetic — diff, add, subtract, startOf, endOf, isWeekend, isLeapYear, weekOfYear, dayOfYear, progress in year/month and quarter operations.
Vali-Range
Expressive date range operations: union, intersection, gaps, split by day/week/month/quarter. Enumerate workdays, expand, shrink, shift and merge ranges fluently.
Vali-Calendar
Workday calendar with pluggable holiday provider support. Calculate workdays between dates, add workdays, query weeks and months, and detect first/last day boundaries.
Vali-Duration
High-precision decimal Duration value type. Factory methods from milliseconds to years, full arithmetic operators, TimeSpan interop, formatting and unit conversion.
Vali-CountDown
Deadline tracking and countdown utilities. Measure time until/since a reference point, report progress as a percentage, and format a human-readable breakdown.
Vali-Age
Age calculation from a birthdate. Get years, exact breakdown, formatted strings, relative descriptions, birthday detection, next/previous birthday and days until birthday.
Vali-Schedule
Fluent builder for recurring schedules — daily, weekly, monthly, yearly, plus a Cron engine. Query next/previous occurrences, enumerate occurrences in a range, and skip weekends/holidays.
Vali-Holiday
38+ country holiday data with Easter-based movable holidays. Register providers, check if a date is a holiday in one or more countries, get next/previous holidays and observed dates.
Vali-TimeZone
45+ curated IANA timezone zones. Convert between zones, handle DST, compute offset differences, find zones by country, format with zone info and compare instants.
Vali-BusinessHours
Cross-timezone business-hours overlap, DST-correct and midnight-crossing aware. Find overlapping windows between two offices and restrict them to workdays.
Vali-Bucket
Fixed-size, anchor-aligned time-series bucketing and aggregation. Group events into buckets and aggregate values — sum, average, min, max, count.
Eleven modules. One time ecosystem.
Eleven focused packages. Use one or all — they compose naturally.
Now("America/Lima")IsHoliday(Today, "US")Convert(90, Min, Hours)Intersect(rangeA, rangeB)WorkdaysIn(30d)From(TimeSpan.FromHours(2))Every(1,Week).On(Mon)Years(Jan 15, 1993)TimeUntil(NewYear)builder.Services.AddValiTempo();// Inject what you needpublic class ScheduleService( IValiTime time, IValiDate date, IValiHoliday holiday, IValiTimeZone tz) { public bool IsBusinessHour(string zone) => !holiday.IsHoliday(DateTime.Today, "PE") && time.Convert(9, TimeUnit.Hours, TimeUnit.Minutes) <= tz.Now(zone).TimeOfDay.TotalMinutes;}12 NuGet packages. Install only what you need.
Each package is independent — add the modules your project requires, or grab Vali-Tempo for the full suite.
Time unit conversions with decimal precision. ValiTime + ValiDate classes.
dotnet add package Vali-TimeDate range operations — union, intersection, gaps, split, enumerate workdays.
dotnet add package Vali-RangeWorkday calendar engine with pluggable holiday provider support.
dotnet add package Vali-CalendarHigh-precision decimal Duration value type with full arithmetic operators.
dotnet add package Vali-DurationDeadline tracking, countdown utilities, progress and breakdown.
dotnet add package Vali-CountDownAge calculation from birthdate. AgeResult struct with years, months, days.
dotnet add package Vali-AgeFluent builder for recurring schedules — daily, weekly, monthly, yearly.
dotnet add package Vali-Schedule35+ country holiday data with Easter-based movable holidays and IHolidayProvider.
dotnet add package Vali-Holiday45+ curated IANA timezone zones with DST support and offset computation.
dotnet add package Vali-TimeZoneCross-timezone business-hours overlap, DST-correct and midnight-crossing aware.
dotnet add package Vali-BusinessHoursFixed-size, anchor-aligned time-series bucketing and aggregation.
dotnet add package Vali-BucketMeta-package that includes all 11 modules. One install, one AddValiTempo() call.
dotnet add package Vali-Tempo