Time::Span
represents one period of time.
A Time::Span
initializes with the specified period. Different numbers of arguments generate a Time::Span
in different length. Check all #new
methods for details.
Time::Span.new(nanoseconds: 10_000) # => 00:00:00.000010000 Time::Span.new(hours: 10, minutes: 10, seconds: 10) # => 10:10:10 Time::Span.new(days: 10, hours: 10, minutes: 10, seconds: 10) # => 10.10:10:10
Calculation between Time
also returns a Time::Span
.
span = Time.utc(2015, 10, 10) - Time.utc(2015, 9, 10) span # => 30.00:00:00 span.class # => Time::Span
Inspection:
span = Time::Span.new(hours: 20, minutes: 10, seconds: 10) span.hours # => 20 span.minutes # => 10 span.seconds # => 10
Calculation:
a = Time::Span.new(hours: 20, minutes: 10, seconds: 10) b = Time::Span.new(hours: 10, minutes: 10, seconds: 10) c = a - b # => 10:00:00 c.hours # => 10
new(seconds: Int64::MAX, nanoseconds: 999999999)
new(seconds: Int64::MIN, nanoseconds: -999999999)
new(nanoseconds: 0)
DEPRECATED Use .new
with named arguments instead.
DEPRECATED Use .new
with named arguments instead.
Creates a new Time::Span
from seconds and nanoseconds.
Creates a new Time::Span
from the nanosenconds given
Creates a new Time::Span
from the days, hours, minutes, seconds and nanoseconds given
Returns a Time::Span
that is number times longer.
Returns a Time::Span
that is number times longer.
Returns a Time::Span
that is divided by number.
Returns a Time::Span
that is divided by number.
Returns the absolute (non-negative) amount of time this Time::Span
represents by removing the sign.
Returns a Time
that happens earlier by self
than the current time.
Returns the number of full days in this time span.
Alias of #abs
.
Returns a Time
that happens later by self
than the current time.
Returns the number of full hours of the day (0..23
) in this time span.
Appends this struct's name and instance variables names and values to the given IO.
Returns the number of microseconds of the second (0..999999
) in this time span.
Returns the number of milliseconds of the second (0..999
) in this time span.
Returns the number of full minutes of the hour (0..59
) in this time span.
Returns the number of nanoseconds of the second (0..999_999_999
) in this time span.
Returns the number of full seconds of the minute (0..59
) in this time span.
Alias of #total_seconds
.
Returns the number of full seconds.
Converts to a (possibly fractional) number of days.
Converts to a (possibly fractional) number of hours.
Converts to a number of microseconds.
Converts to a number of milliseconds.
Converts to a (possibly fractional) number of minutes.
Converts to a number of nanoseconds.
Converts to a (possibly fractional) number of seconds.
Converts to a (possibly fractional) number of weeks.
Comparable(Time::Span)
Struct
Value
Object
Object
DEPRECATED Use .new
with named arguments instead.
DEPRECATED Use .new
with named arguments instead.
Creates a new Time::Span
from seconds and nanoseconds.
Nanoseconds get normalized in the range of 0...1_000_000_000
, the nanosecond overflow gets added as seconds.
Time::Span.new(seconds: 30) # => 00:00:30 Time::Span.new(seconds: 5, nanoseconds: 12) # => 00:00:05.000000012
Creates a new Time::Span
from the nanosenconds given
Nanoseconds get normalized in the range of 0...1_000_000_000
, the nanosecond overflow gets added as seconds.
Time::Span.new(nanoseconds: 500_000_000) # => 00:00:00.500000000 Time::Span.new(nanoseconds: 5_500_000_000) # => 00:00:05.500000000
Creates a new Time::Span
from the days, hours, minutes, seconds and nanoseconds given
Any time unit can be omitted.
Time::Span.new(days: 1) # => 1.00:00:00 Time::Span.new(days: 1, hours: 2, minutes: 3) # => 01:02:03 Time::Span.new(days: 1, hours: 2, minutes: 3, seconds: 4, nanoseconds: 5) # => 1.02:03:04.000000005
Returns a Time::Span
that is number times longer.
Returns a Time::Span
that is number times longer.
Returns a Time::Span
that is divided by number.
Returns a Time::Span
that is divided by number.
Returns the absolute (non-negative) amount of time this Time::Span
represents by removing the sign.
Returns the number of full days in this time span.
(5.days + 25.hours).days # => 6_i64
Alias of #abs
.
Appends this struct's name and instance variables names and values to the given IO.
struct Point def initialize(@x : Int32, @y : Int32) end end p1 = Point.new 1, 2 p1.to_s # "Point(@x=1, @y=2)" p1.inspect # "Point(@x=1, @y=2)"
Returns the number of microseconds of the second (0..999999
) in this time span.
Returns the number of milliseconds of the second (0..999
) in this time span.
Returns the number of nanoseconds of the second (0..999_999_999
) in this time span.
Returns the number of full seconds of the minute (0..59
) in this time span.
Alias of #total_seconds
.
Converts to a (possibly fractional) number of days.
(36.hours).total_days # => 1.5
Converts to a (possibly fractional) number of weeks.
(4.weeks + 5.days + 6.hours).total_weeks # => 4.75
© 2012–2020 Manas Technology Solutions.
Licensed under the Apache License, Version 2.0.
https://crystal-lang.org/api/0.35.1/Time/Span.html