little.time

package little.time

Type members

Classlikes

sealed trait CronSchedule extends Schedule

Defines cron-like utility for scheduled times.

Defines cron-like utility for scheduled times.

Scheduled Times

CronSchedule determines its scheduled times using fields, where each field is a sorted sequence of distinct values specifying a component of time.

The times field specifies local times in schedule. It must include at least one value.

The daysOfMonth field specifies days of month in schedule. If empty, then every day is implied unless daysOfWeek is non-empty.

The months field specifies months in schedule. If empty, then every month is implied.

The daysOfWeek field specifies days of week in schedule. If empty, then every day is implied unless daysOfMonth is non-empty.

If both daysOfMonth and daysOfWeek are non-empty, then scheduled times are determined as a union of both fields.

import java.time.LocalTime.NOON
import java.time.Month.{ OCTOBER, NOVEMBER, DECEMBER }

import little.time.{ CronSchedule, TimeStringMethods }

// Create schedule
val schedule = CronSchedule(
 times       = Seq(NOON),
 daysOfMonth = Seq(1, 15),
 months      = Seq(OCTOBER, NOVEMBER, DECEMBER))

val start = "2020-10-01".toLocalDate
val end   = "2020-12-31".toLocalDate

// Iterate over scheduled times
schedule.between(start, end).foreach { time =>
 println(s"${time.toLocalDate} at ${time.toLocalTime}")
}

// Create schedule using cron-like syntax
val altSchedule = CronSchedule("0 12 1,15 10-12 *")
Companion:
object

Provides CronSchedule factory.

Provides CronSchedule factory.

Companion:
class
final implicit class DurationMethods(duration: Duration) extends AnyVal

Provides extension methods for java.time.Duration

Provides extension methods for java.time.Duration

final implicit class InstantMethods(instant: Instant) extends AnyVal

Provides extension methods for java.time.Instant

Provides extension methods for java.time.Instant

final implicit class LocalDateMethods(date: LocalDate) extends AnyVal

Provides extension methods for java.time.LocalDate

Provides extension methods for java.time.LocalDate

final implicit class LocalDateTimeMethods(dateTime: LocalDateTime) extends AnyVal

Provides extension methods for java.time.LocalDateTime

Provides extension methods for java.time.LocalDateTime

final implicit class LocalTimeMethods(time: LocalTime) extends AnyVal

Provides extension methods for java.time.LocalTime

Provides extension methods for java.time.LocalTime

final implicit class PeriodMethods(period: Period) extends AnyVal

Provides extension methods for java.time.Period

Provides extension methods for java.time.Period

trait Schedule

Defines utility for scheduled times.

Defines utility for scheduled times.

Companion:
object
object Schedule

Provides Schedule factory.

Provides Schedule factory.

Companion:
class
sealed trait TimePrecision extends Ordered[TimePrecision]

Specifies precision of time.

Specifies precision of time.

Companion:
object

Provides available TimePrecisions .

Provides available TimePrecisions .

Companion:
class
final implicit class TimeStringMethods(string: String) extends AnyVal

Provides time-related extension methods to java.lang.String.

Provides time-related extension methods to java.lang.String.

final implicit class YearMonthMethods(month: YearMonth) extends AnyVal

Provides extension methods for java.time.YearMonth

Provides extension methods for java.time.YearMonth

Givens

Givens

given durationOrdering: Ordering[Duration]

Provides ordering for java.time.Duration.

Provides ordering for java.time.Duration.

given instantOrdering: Ordering[Instant]

Provides ordering for java.time.Instant.

Provides ordering for java.time.Instant.

given localDateOrdering: Ordering[LocalDate]

Provides ordering for java.time.LocalDate.

Provides ordering for java.time.LocalDate.

given localDateTimeOrdering: Ordering[LocalDateTime]

Provides ordering for java.time.LocalDateTime.

Provides ordering for java.time.LocalDateTime.

given localTimeOrdering: Ordering[LocalTime]

Provides ordering for java.time.LocalTime.

Provides ordering for java.time.LocalTime.

given yearMonthOrdering: Ordering[YearMonth]

Provides ordering for java.time.YearMonth.

Provides ordering for java.time.YearMonth.

Implicits

Implicits

final implicit def DurationMethods(duration: Duration): DurationMethods

Provides extension methods for java.time.Duration

Provides extension methods for java.time.Duration

final implicit def InstantMethods(instant: Instant): InstantMethods

Provides extension methods for java.time.Instant

Provides extension methods for java.time.Instant

final implicit def LocalDateMethods(date: LocalDate): LocalDateMethods

Provides extension methods for java.time.LocalDate

Provides extension methods for java.time.LocalDate

final implicit def LocalDateTimeMethods(dateTime: LocalDateTime): LocalDateTimeMethods

Provides extension methods for java.time.LocalDateTime

Provides extension methods for java.time.LocalDateTime

final implicit def LocalTimeMethods(time: LocalTime): LocalTimeMethods

Provides extension methods for java.time.LocalTime

Provides extension methods for java.time.LocalTime

final implicit def PeriodMethods(period: Period): PeriodMethods

Provides extension methods for java.time.Period

Provides extension methods for java.time.Period

final implicit def TimeStringMethods(string: String): TimeStringMethods

Provides time-related extension methods to java.lang.String.

Provides time-related extension methods to java.lang.String.

final implicit def YearMonthMethods(month: YearMonth): YearMonthMethods

Provides extension methods for java.time.YearMonth

Provides extension methods for java.time.YearMonth