struct Time::Span
Overview
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(10, 10, 10) # => 10:10:10
Time::Span.new(10, 10, 10, 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(20, 10, 10)
span.hours # => 20
span.minutes # => 10
span.seconds # => 10
Calculation:
a = Time::Span.new(20, 10, 10)
b = Time::Span.new(10, 10, 10)
c = a - b # => 10:00:00
c.hours # => 10
Included Modules
Defined in:
time/span.crConstant Summary
-
MAX =
new(seconds: Int64::MAX, nanoseconds: 999999999)
-
MIN =
new(seconds: Int64::MIN, nanoseconds: -999999999)
-
ZERO =
new(nanoseconds: 0)
Constructors
- .new(days : Int, hours : Int, minutes : Int, seconds : Int, nanoseconds : Int = 0)
- .new(hours : Int, minutes : Int, seconds : Int)
- .new(*, seconds : Int, nanoseconds : Int)
- .new(*, nanoseconds : Int)
Class Method Summary
Instance Method Summary
-
#*(number : Float) : Time::Span
Returns a
Time::Span
that is number times longer. -
#*(number : Int) : Time::Span
Returns a
Time::Span
that is number times longer. - #+ : self
- #+(other : self) : Time::Span
- #- : Time::Span
- #-(other : self) : Time::Span
- #/(other : self) : Float64
-
#/(number : Float) : Time::Span
Returns a
Time::Span
that is divided by number. -
#/(number : Int) : Time::Span
Returns a
Time::Span
that is divided by number. - #<=>(other : self)
-
#abs : Time::Span
Returns the absolute (non-negative) amount of time this
Time::Span
represents by removing the sign. -
#ago : Time
Returns a
Time
that happens earlier byself
than the current time. -
#days : Int64
Returns the number of full days in this time span.
-
#duration : Time::Span
Alias of
#abs
. -
#from_now : Time
Returns a
Time
that happens later byself
than the current time. -
#hours : Int32
Returns the number of full hours of the day (
0..23
) in this time span. -
#inspect(io : IO) : Nil
Appends this struct's name and instance variables names and values to the given IO.
-
#microseconds : Int32
Returns the number of microseconds of the second (
0..999999
) in this time span. -
#milliseconds : Int32
Returns the number of milliseconds of the second (
0..999
) in this time span. -
#minutes : Int32
Returns the number of full minutes of the hour (
0..59
) in this time span. -
#nanoseconds : Int32
Returns the number of nanoseconds of the second (
0..999_999_999
) in this time span. -
#seconds : Int32
Returns the number of full seconds of the minute (
0..59
) in this time span. -
#to_f : Float64
Alias of
#total_seconds
. -
#to_i : Int64
Returns the number of full seconds.
-
#total_days : Float64
Converts to a (possibly fractional) number of days.
-
#total_hours : Float64
Converts to a (possibly fractional) number of hours.
-
#total_milliseconds : Float64
Converts to a number of milliseconds.
-
#total_minutes : Float64
Converts to a (possibly fractional) number of minutes.
-
#total_nanoseconds : Float64
Converts to a number of nanoseconds.
-
#total_seconds : Float64
Converts to a (possibly fractional) number of seconds.
-
#total_weeks : Float64
Converts to a (possibly fractional) number of weeks.
- #zero? : Bool
Instance methods inherited from module Comparable(Time::Span)
<(other : T)
<,
<=(other : T)
<=,
<=>(other : T)
<=>,
==(other : T)
==,
>(other : T)
>,
>=(other : T)
>=,
clamp(min, max)clamp(range : Range) clamp
Instance methods inherited from struct Struct
==(other) : Bool
==,
hash(hasher)
hash,
inspect(io : IO) : Nil
inspect,
pretty_print(pp) : Nil
pretty_print,
to_s(io : IO) : Nil
to_s
Instance methods inherited from struct Value
==(other : JSON::Any)==(other : YAML::Any)
==(other) ==, dup dup
Instance methods inherited from class Object
! : Bool
!,
!=(other)
!=,
!~(other)
!~,
==(other)
==,
===(other : JSON::Any)===(other : YAML::Any)
===(other) ===, =~(other) =~, as(type : Class) as, as?(type : Class) as?, class class, dup dup, hash
hash(hasher) hash, inspect(io : IO) : Nil
inspect : String inspect, is_a?(type : Class) : Bool is_a?, itself itself, nil? : Bool nil?, not_nil! not_nil!, pretty_inspect(width = 79, newline = "\n", indent = 0) : String pretty_inspect, pretty_print(pp : PrettyPrint) : Nil pretty_print, responds_to?(name : Symbol) : Bool responds_to?, tap(&) tap, to_json(io : IO)
to_json to_json, to_pretty_json(indent : String = " ")
to_pretty_json(io : IO, indent : String = " ") to_pretty_json, to_s : String
to_s(io : IO) : Nil to_s, to_yaml(io : IO)
to_yaml to_yaml, try(&) try, unsafe_as(type : T.class) forall T unsafe_as
Class methods inherited from class Object
from_json(string_or_io, root : String)from_json(string_or_io) from_json, from_yaml(string_or_io : String | IO) from_yaml
Constructor Detail
Class Method Detail
Instance Method Detail
Returns a Time::Span
that is number times longer.
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
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.
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 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.
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