Module core.time
Module containing core time functionality, such as Duration (which
    represents a duration of time) or MonoTime (which represents a
    timestamp of the system's monotonic clock).
Various functions take a string (or strings) to represent a unit of time
    (e.g. convert!("days", "hours")(numDays)). The valid strings to use
    with such functions are "years", "months", "weeks", "days", "hours",
    "minutes", "seconds", "msecs" (milliseconds), "usecs" (microseconds),
    "hnsecs" (hecto-nanoseconds - i.e. 100 ns) or some subset thereof. There
    are a few functions that also allow "nsecs", but very little actually
    has precision greater than hnsecs.
    
Cheat Sheet    | Symbol | Description | 
|---|
    | Types | 
    | Duration | Represents a duration of time of weeks
    or less (kept internally as hnsecs). (e.g. 22 days or 700 seconds). | 
    | TickDuration | Represents a duration of time in
    system clock ticks, using the highest precision that the system provides. | 
    | MonoTime | Represents a monotonic timestamp in
    system clock ticks, using the highest precision that the system provides. | 
    | FracSec | Represents fractional seconds
    (portions of time smaller than a second). | 
    | Functions | 
    | convert | Generic way of converting between two time
    units. | 
    | dur | Allows constructing a Durationfrom
    the given time units with the given length. | 
    | weeksdayshours
 minutessecondsmsecs
 usecshnsecsnsecs | Convenience aliases for dur. | 
    | abs | Returns the absolute value of a duration. | 
    
    
				
				
					Functions
					
						
						
							| Name | Description | 
						
							| 
									abs(duration)
								 | Returns the absolute value of a duration. | 
						
							| 
									convClockFreq(ticks, srcTicksPerSecond, dstTicksPerSecond)
								 | Converts the given time from one clock frequency/resolution to another. | 
						
							| 
									convert(value)
								 | Generic way of converting between two time units. Conversions to smaller
    units use truncating division. Years and months can be converted to each
    other, small units can be converted to each other, but years and months
    cannot be converted to or from smaller units (due to the varying number
    of days in a month or year). | 
						
							| 
									dur(length)
								 | These allow you to construct a Durationfrom the given time units
    with the given length. | 
						
							| 
									nsecsToTicks(ticks)
								 | The reverse of ticksToNSecs. | 
						
							| 
									ticksToNSecs(ticks)
								 | Convenience wrapper around convClockFreqwhich converts ticks at
    a clock frequency ofMonoTime.ticksPerSecondto nanoseconds. | 
						
							| 
									to(td)
								 | Converts a TickDurationto the given units as either an integral
    value or a floating point value. | 
					
				
				
				
					Structs
					
						
						
							| Name | Description | 
						
							| 
									Duration
								 | Represents a duration of time of weeks or less (kept internally as hnsecs).
    (e.g. 22 days or 700 seconds). | 
						
							| 
									FracSec
								 | Everything in druntime and Phobos that was using FracSec now uses
          Duration for greater simplicity. So, FracSec has been deprecated.
          It will be removed from the docs in October 2018, and removed
          completely from druntime in October 2019. | 
						
							| 
									MonoTimeImpl
								 | Represents a timestamp of the system's monotonic clock. | 
						
							| 
									TickDuration
								 | Warning: TickDuration will be deprecated in the near future (once all
          uses of it in Phobos have been deprecated). Please use MonoTimefor the cases where a monotonic timestamp is needed
          andDurationwhen a duration is needed, rather than using
          TickDuration. It has been decided that TickDuration is too confusing
          (e.g. it conflates a monotonic timestamp and a duration in monotonic
           clock ticks) and that having multiple duration types is too awkward
          and confusing. | 
					
				
				
				
					Aliases
					
						
						
							| Name | Type | Description | 
						
							| days |  | These allow you to construct a Durationfrom the given time units
    with the given length. | 
						
							| hnsecs |  | These allow you to construct a Durationfrom the given time units
    with the given length. | 
						
							| hours |  | These allow you to construct a Durationfrom the given time units
    with the given length. | 
						
							| minutes |  | These allow you to construct a Durationfrom the given time units
    with the given length. | 
						
							| MonoTime | MonoTimeImpl!(0) | alias for MonoTimeImplinstantiated withClockType.normal. This is
    what most programs should use. It's also what much ofMonoTimeImpluses
    in its documentation (particularly in the examples), because that's what's
    going to be used in most code. | 
						
							| msecs |  | These allow you to construct a Durationfrom the given time units
    with the given length. | 
						
							| nsecs |  | These allow you to construct a Durationfrom the given time units
    with the given length. | 
						
							| seconds |  | These allow you to construct a Durationfrom the given time units
    with the given length. | 
						
							| usecs |  | These allow you to construct a Durationfrom the given time units
    with the given length. | 
						
							| weeks |  | These allow you to construct a Durationfrom the given time units
    with the given length. |