We have already seen some of the Period
constructors. These are all the available ones—Day
, Week
, Month
, Year
, Hour
, Minute
, Second
, Millisecond
, Microsecond
, and Nanosecond
. The Period
type is an abstract type with two concrete subtypes, DatePeriod
and TimePeriod
:
julia> subtypes(Period)
2-element Array{Any,1}:
DatePeriod
TimePeriod
Period
in Julia represents a duration of time. It is a very useful abstraction representing vague time concepts that people use routinely. Think about a month—how many days does a month have—30 or 31? What about 28? Or 29?
Many times, it can be useful to work with vague abstractions without switching to actual dates until more information is provided. Take, for instance, the hypothetical case of a trip to Mars. According to https://image.gsfc.nasa.gov/poetry/venus/q2811.html, a return trip to Mars will take 21 months
—9
to get there, 3
to stay there, and 9
more to get back:
julia> duration_of_trip_to_mars = Month(9) ...