Skip to content

rmja/Setling

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Setling

A time settle library for NodaTime.

Usage

var timezone = DateTimeZoneProviders.Tzdb["Europe/Copenhagen"];
var now = DateTimeOffset.UtcNow.ToZonedDateTime().WithZone(timezone);

var rule = SettleRule.Parse("day+PT2H"); // Equivalent to _day+PT2H
var startOfTodayPlusTwoHours = rule.Settle(now);

var rule = SettleRule.Parse("^day+PT2H");
var startOfTomorrowPlusTwoHours = rule.Settle(now);

var rule = SettleRule.Parse("~day+PT2H");
var startOfTodayOrTomorrowPlusTwoHours = rule.Settle(now);

The rule string can consist of any of the following parts:

  • A rounding to start of _, end of ^, or nearest ~ of any of the intervals: second, minute, hour, day, month, quarter, year, monday, tuesday, wednesday, thursday, friday, saturday, sunday, january, february, march, april, may, june, july, august, september, october, november, december, season, spring, summer, autumn, winter,
  • Plus/minus a period according to ISO8601, e.g. PT2H (two hours)

The parts can be chained in any way, for examle: day+PT2H_month~year-P7D. This will take the input time through the following process: Find the start of the day, add two hours, find the start of the month, find the nearest year, subtract 7 days.

About

A time settle library for NodaTime

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages