Bug #7326 » time_patch0002.diff
| time.c | ||
|---|---|---|
| 
     /* 
   | 
||
| 
      *  Document-method: now 
   | 
||
| 
      * 
   | 
||
| 
      *  Synonym for <code>Time.new</code>. Returns a +Time+ object 
   | 
||
| 
      *  Alias for Time::new. Returns a Time object 
   | 
||
| 
      *  initialized to the current system time. 
   | 
||
| 
      */ 
   | 
||
| ... | ... | |
| 
      *     Time.new -> time 
   | 
||
| 
      *     Time.new(year, month=nil, day=nil, hour=nil, min=nil, sec=nil, utc_offset=nil) -> time 
   | 
||
| 
      * 
   | 
||
| 
      *  Returns a <code>Time</code> object. 
   | 
||
| 
      *  Returns a Time object. 
   | 
||
| 
      * 
   | 
||
| 
      *  It is initialized to the current system time if no argument. 
   | 
||
| 
      *  <b>Note:</b> The object created will be created using the 
   | 
||
| ... | ... | |
| 
      *     Time.at(seconds_with_frac) -> time 
   | 
||
| 
      *     Time.at(seconds, microseconds_with_frac) -> time 
   | 
||
| 
      * 
   | 
||
| 
      *  Creates a new time object with the value given by <i>time</i>, 
   | 
||
| 
      *  the given number of <i>seconds_with_frac</i>, or 
   | 
||
| 
      *  <i>seconds</i> and <i>microseconds_with_frac</i> from the Epoch. 
   | 
||
| 
      *  <i>seconds_with_frac</i> and <i>microseconds_with_frac</i> 
   | 
||
| 
      *  can be Integer, Float, Rational, or other Numeric. 
   | 
||
| 
      *  Creates a new Time object with the value given by +time+, 
   | 
||
| 
      *  the given number of +seconds_with_frac+, or 
   | 
||
| 
      *  +seconds+ and +microseconds_with_frac+ since the Epoch. 
   | 
||
| 
      *  +seconds_with_frac+ and +microseconds_with_frac+ 
   | 
||
| 
      *  can be integer, Float, Rational, or other Numeric. 
   | 
||
| 
      *  non-portable feature allows the offset to be negative on some systems. 
   | 
||
| 
      * 
   | 
||
| 
      *  If a numeric argument is given, the result is in local time. 
   | 
||
| 
      * 
   | 
||
| 
      *     Time.at(0)            #=> 1969-12-31 18:00:00 -0600 
   | 
||
| 
      *     Time.at(Time.at(0))   #=> 1969-12-31 18:00:00 -0600 
   | 
||
| 
      *     Time.at(946702800)    #=> 1999-12-31 23:00:00 -0600 
   | 
||
| 
      *     Time.at(-284061600)   #=> 1960-12-31 00:00:00 -0600 
   | 
||
| 
      *     Time.at(946684800.2).usec #=> 200000 
   | 
||
| 
      *     Time.at(946684800, 123456.789).nsec #=> 123456789 
   | 
||
| 
      *     Time.at(0)                           #=> 1969-12-31 18:00:00 -0600 
   | 
||
| 
      *     Time.at(Time.at(0))                  #=> 1969-12-31 18:00:00 -0600 
   | 
||
| 
      *     Time.at(946702800)                   #=> 1999-12-31 23:00:00 -0600 
   | 
||
| 
      *     Time.at(-284061600)                  #=> 1960-12-31 00:00:00 -0600 
   | 
||
| 
      *     Time.at(946684800.2).usec            #=> 200000 
   | 
||
| 
      *     Time.at(946684800, 123456.789).nsec  #=> 123456789 
   | 
||
| 
      */ 
   | 
||
| 
     static VALUE 
   | 
||
| ... | ... | |
| 
      * 
   | 
||
| 
      *  Creates a time based on given values, interpreted as UTC (GMT). The 
   | 
||
| 
      *  year must be specified. Other values default to the minimum value 
   | 
||
| 
      *  for that field (and may be <code>nil</code> or omitted). Months may 
   | 
||
| 
      *  for that field (and may be +nil+ or omitted). Months may 
   | 
||
| 
      *  be specified by numbers from 1 to 12, or by the three-letter English 
   | 
||
| 
      *  month names. Hours are specified on a 24-hour clock (0..23). Raises 
   | 
||
| 
      *  an <code>ArgumentError</code> if any values are out of range. Will 
   | 
||
| 
      *  also accept ten arguments in the order output by 
   | 
||
| 
      *  <code>Time#to_a</code>. 
   | 
||
| 
      *  <i>sec_with_frac</i> and <i>usec_with_frac</i> can have a fractional part. 
   | 
||
| 
      *  an ArgumentError if any values are out of range. Will 
   | 
||
| 
      *  also accept ten arguments in the order output by Time#to_a. 
   | 
||
| 
      * 
   | 
||
| 
      *  +sec_with_frac+ and +usec_with_frac+ can have a fractional part. 
   | 
||
| 
      * 
   | 
||
| 
      *     Time.utc(2000,"jan",1,20,15,1)  #=> 2000-01-01 20:15:01 UTC 
   | 
||
| 
      *     Time.gm(2000,"jan",1,20,15,1)   #=> 2000-01-01 20:15:01 UTC 
   | 
||
| ... | ... | |
| 
      *   Time.mktime(year, month, day, hour, min, sec, usec_with_frac) -> time 
   | 
||
| 
      *   Time.mktime(sec, min, hour, day, month, year, wday, yday, isdst, tz) -> time 
   | 
||
| 
      * 
   | 
||
| 
      *  Same as <code>Time::gm</code>, but interprets the values in the 
   | 
||
| 
      *  Same as Time::gm, but interprets the values in the 
   | 
||
| 
      *  local time zone. 
   | 
||
| 
      * 
   | 
||
| 
      *     Time.local(2000,"jan",1,20,15,1)   #=> 2000-01-01 20:15:01 -0600 
   | 
||
| ... | ... | |
| 
      *     time.to_i   -> int 
   | 
||
| 
      *     time.tv_sec -> int 
   | 
||
| 
      * 
   | 
||
| 
      *  Returns the value of <i>time</i> as an integer number of seconds 
   | 
||
| 
      *  Returns the value of _time_ as an integer number of seconds 
   | 
||
| 
      *  since the Epoch. 
   | 
||
| 
      * 
   | 
||
| 
      *     t = Time.now 
   | 
||
| ... | ... | |
| 
      *  call-seq: 
   | 
||
| 
      *     time.to_f -> float 
   | 
||
| 
      * 
   | 
||
| 
      *  Returns the value of <i>time</i> as a floating point number of 
   | 
||
| 
      *  Returns the value of _time_ as a floating point number of 
   | 
||
| 
      *  seconds since the Epoch. 
   | 
||
| 
      * 
   | 
||
| 
      *     t = Time.now 
   | 
||
| ... | ... | |
| 
      *  call-seq: 
   | 
||
| 
      *     time.to_r -> a_rational 
   | 
||
| 
      * 
   | 
||
| 
      *  Returns the value of <i>time</i> as a rational number of seconds 
   | 
||
| 
      *  Returns the value of _time_ as a rational number of seconds 
   | 
||
| 
      *  since the Epoch. 
   | 
||
| 
      * 
   | 
||
| 
      *     t = Time.now 
   | 
||
| 
      *     p t.to_r            #=> (1270968792716287611/1000000000) 
   | 
||
| 
      * 
   | 
||
| 
      *  This methods is intended to be used to get an accurate value 
   | 
||
| 
      *  representing nanoseconds from the Epoch.  You can use this 
   | 
||
| 
      *  to convert time to another Epoch. 
   | 
||
| 
      *  representing the nanoseconds since the Epoch. You can use this method 
   | 
||
| 
      *  to convert _time_ to another Epoch. 
   | 
||
| 
      */ 
   | 
||
| 
     static VALUE 
   | 
||
| ... | ... | |
| 
      *     time.usec    -> int 
   | 
||
| 
      *     time.tv_usec -> int 
   | 
||
| 
      * 
   | 
||
| 
      *  Returns just the number of microseconds for <i>time</i>. 
   | 
||
| 
      *  Returns the number of microseconds for _time_. 
   | 
||
| 
      * 
   | 
||
| 
      *     t = Time.now        #=> 2007-11-19 08:03:26 -0600 
   | 
||
| 
      *     "%10.6f" % t.to_f   #=> "1195481006.775195" 
   | 
||
| ... | ... | |
| 
      *     time.nsec    -> int 
   | 
||
| 
      *     time.tv_nsec -> int 
   | 
||
| 
      * 
   | 
||
| 
      *  Returns just the number of nanoseconds for <i>time</i>. 
   | 
||
| 
      *  Returns the number of nanoseconds for _time_. 
   | 
||
| 
      * 
   | 
||
| 
      *     t = Time.now        #=> 2007-11-17 15:18:03 +0900 
   | 
||
| 
      *     "%10.9f" % t.to_f   #=> "1195280283.536151409" 
   | 
||
| 
      *     t.nsec              #=> 536151406 
   | 
||
| 
      * 
   | 
||
| 
      *  The lowest digit of to_f and nsec is different because 
   | 
||
| 
      *  The lowest digits of #to_f and #nsec are different because 
   | 
||
| 
      *  IEEE 754 double is not accurate enough to represent 
   | 
||
| 
      *  nanoseconds from the Epoch. 
   | 
||
| 
      *  The accurate value is returned by nsec. 
   | 
||
| ... | ... | |
| 
      *  call-seq: 
   | 
||
| 
      *     time.subsec    -> number 
   | 
||
| 
      * 
   | 
||
| 
      *  Returns just the fraction for <i>time</i>. 
   | 
||
| 
      *  Returns the fraction for _time_. 
   | 
||
| 
      * 
   | 
||
| 
      *  The result is possibly rational. 
   | 
||
| 
      * 
   | 
||
| ... | ... | |
| 
      *     "%10.9f" % t.to_f   #=> "1238074392.940563917" 
   | 
||
| 
      *     t.subsec            #=> (94056401/100000000) 
   | 
||
| 
      * 
   | 
||
| 
      *  The lowest digit of to_f and subsec is different because 
   | 
||
| 
      *  The lowest digits of #to_f and #subsec are different because 
   | 
||
| 
      *  IEEE 754 double is not accurate enough to represent 
   | 
||
| 
      *  the rational. 
   | 
||
| 
      *  The accurate value is returned by subsec. 
   | 
||
| ... | ... | |
| 
      * call-seq: 
   | 
||
| 
      *  time.eql?(other_time) 
   | 
||
| 
      * 
   | 
||
| 
      * Return <code>true</code> if <i>time</i> and <i>other_time</i> are 
   | 
||
| 
      * both <code>Time</code> objects with the same seconds and fractional 
   | 
||
| 
      * seconds. 
   | 
||
| 
      * Returns +true+ if _time_ and +other_time+ are 
   | 
||
| 
      * both Time objects with the same seconds and fractional seconds. 
   | 
||
| 
      */ 
   | 
||
| 
     static VALUE 
   | 
||
| ... | ... | |
| 
      *     time.utc? -> true or false 
   | 
||
| 
      *     time.gmt? -> true or false 
   | 
||
| 
      * 
   | 
||
| 
      *  Returns <code>true</code> if <i>time</i> represents a time in UTC 
   | 
||
| 
      *  (GMT). 
   | 
||
| 
      *  Returns +true+ if _time_ represents a time in UTC (GMT). 
   | 
||
| 
      * 
   | 
||
| 
      *     t = Time.now                        #=> 2007-11-19 08:15:23 -0600 
   | 
||
| 
      *     t.utc?                              #=> false 
   | 
||
| ... | ... | |
| 
      * call-seq: 
   | 
||
| 
      *   time.hash   -> fixnum 
   | 
||
| 
      * 
   | 
||
| 
      * Return a hash code for this time object. 
   | 
||
| 
      * Returns a hash code for this Time object. 
   | 
||
| 
      */ 
   | 
||
| 
     static VALUE 
   | 
||
| ... | ... | |
| 
      *     time.localtime -> time 
   | 
||
| 
      *     time.localtime(utc_offset) -> time 
   | 
||
| 
      * 
   | 
||
| 
      *  Converts <i>time</i> to local time (using the local time zone in 
   | 
||
| 
      *  Converts _time_ to local time (using the local time zone in 
   | 
||
| 
      *  effect for this process) modifying the receiver. 
   | 
||
| 
      * 
   | 
||
| 
      *  If _utc_offset_ is given, it is used instead of the local time. 
   | 
||
| ... | ... | |
| 
      *     time.gmtime    -> time 
   | 
||
| 
      *     time.utc       -> time 
   | 
||
| 
      * 
   | 
||
| 
      *  Converts <i>time</i> to UTC (GMT), modifying the receiver. 
   | 
||
| 
      *  Converts _time_ to UTC (GMT), modifying the receiver. 
   | 
||
| 
      * 
   | 
||
| 
      *     t = Time.now   #=> 2007-11-19 08:18:31 -0600 
   | 
||
| 
      *     t.gmt?         #=> false 
   | 
||
| ... | ... | |
| 
      *     time.getlocal -> new_time 
   | 
||
| 
      *     time.getlocal(utc_offset) -> new_time 
   | 
||
| 
      * 
   | 
||
| 
      *  Returns a new <code>new_time</code> object representing <i>time</i> in 
   | 
||
| 
      *  Returns a new Time object representing _time_ in 
   | 
||
| 
      *  local time (using the local time zone in effect for this process). 
   | 
||
| 
      * 
   | 
||
| 
      *  If _utc_offset_ is given, it is used instead of the local time. 
   | 
||
| ... | ... | |
| 
      *     time.getgm  -> new_time 
   | 
||
| 
      *     time.getutc -> new_time 
   | 
||
| 
      * 
   | 
||
| 
      *  Returns a new <code>new_time</code> object representing <i>time</i> in 
   | 
||
| 
      *  UTC. 
   | 
||
| 
      *  Returns a new Time object representing _time_ in UTC. 
   | 
||
| 
      * 
   | 
||
| 
      *     t = Time.local(2000,1,1,20,15,1)   #=> 2000-01-01 20:15:01 -0600 
   | 
||
| 
      *     t.gmt?                             #=> false 
   | 
||
| ... | ... | |
| 
      *     time.asctime -> string 
   | 
||
| 
      *     time.ctime   -> string 
   | 
||
| 
      * 
   | 
||
| 
      *  Returns a canonical string representation of <i>time</i>. 
   | 
||
| 
      *  Returns a canonical string representation of _time_. 
   | 
||
| 
      * 
   | 
||
| 
      *     Time.now.asctime   #=> "Wed Apr  9 08:56:03 2003" 
   | 
||
| 
      */ 
   | 
||
| ... | ... | |
| 
      *     time + numeric -> time 
   | 
||
| 
      * 
   | 
||
| 
      *  Addition---Adds some number of seconds (possibly fractional) to 
   | 
||
| 
      *  <i>time</i> and returns that value as a new time. 
   | 
||
| 
      *  _time_ and returns that value as a new Time object. 
   | 
||
| 
      * 
   | 
||
| 
      *     t = Time.now         #=> 2007-11-19 08:22:21 -0600 
   | 
||
| 
      *     t + (60 * 60 * 24)   #=> 2007-11-20 08:22:21 -0600 
   | 
||
| ... | ... | |
| 
      * call-seq: 
   | 
||
| 
      *   time.succ   -> new_time 
   | 
||
| 
      * 
   | 
||
| 
      * Return a new time object, one second later than <code>time</code>. 
   | 
||
| 
      * Returns a new Time object, one second later than _time_. 
   | 
||
| 
      * Time#succ is obsolete since 1.9.2 for time is not a discrete value. 
   | 
||
| 
      * 
   | 
||
| 
      *     t = Time.now       #=> 2007-11-19 08:23:57 -0600 
   | 
||
| ... | ... | |
| 
      *   time.round([ndigits])   -> new_time 
   | 
||
| 
      * 
   | 
||
| 
      * Rounds sub seconds to a given precision in decimal digits (0 digits by default). 
   | 
||
| 
      * It returns a new time object. 
   | 
||
| 
      * It returns a new Time object. 
   | 
||
| 
      * _ndigits_ should be zero or positive integer. 
   | 
||
| 
      * 
   | 
||
| 
      *     require 'time' 
   | 
||
| ... | ... | |
| 
      *  call-seq: 
   | 
||
| 
      *     time.sec -> fixnum 
   | 
||
| 
      * 
   | 
||
| 
      *  Returns the second of the minute (0..60) for <i>time</i>. 
   | 
||
| 
      *  Returns the second of the minute (0..60) for _time_. 
   | 
||
| 
      * 
   | 
||
| 
      *  <em>[Yes, seconds range from zero to 60.  This allows the system to inject 
   | 
||
| 
      *  leap seconds.  See http://en.wikipedia.org/wiki/Leap_second for further 
   | 
||
| ... | ... | |
| 
      *  call-seq: 
   | 
||
| 
      *     time.min -> fixnum 
   | 
||
| 
      * 
   | 
||
| 
      *  Returns the minute of the hour (0..59) for <i>time</i>. 
   | 
||
| 
      *  Returns the minute of the hour (0..59) for _time_. 
   | 
||
| 
      * 
   | 
||
| 
      *     t = Time.now   #=> 2007-11-19 08:25:51 -0600 
   | 
||
| 
      *     t.min          #=> 25 
   | 
||
| ... | ... | |
| 
      *  call-seq: 
   | 
||
| 
      *     time.hour -> fixnum 
   | 
||
| 
      * 
   | 
||
| 
      *  Returns the hour of the day (0..23) for <i>time</i>. 
   | 
||
| 
      *  Returns the hour of the day (0..23) for _time_. 
   | 
||
| 
      * 
   | 
||
| 
      *     t = Time.now   #=> 2007-11-19 08:26:20 -0600 
   | 
||
| 
      *     t.hour         #=> 8 
   | 
||
| ... | ... | |
| 
      *     time.day  -> fixnum 
   | 
||
| 
      *     time.mday -> fixnum 
   | 
||
| 
      * 
   | 
||
| 
      *  Returns the day of the month (1..n) for <i>time</i>. 
   | 
||
| 
      *  Returns the day of the month (1..n) for _time_. 
   | 
||
| 
      * 
   | 
||
| 
      *     t = Time.now   #=> 2007-11-19 08:27:03 -0600 
   | 
||
| 
      *     t.day          #=> 19 
   | 
||
| ... | ... | |
| 
      *     time.mon   -> fixnum 
   | 
||
| 
      *     time.month -> fixnum 
   | 
||
| 
      * 
   | 
||
| 
      *  Returns the month of the year (1..12) for <i>time</i>. 
   | 
||
| 
      *  Returns the month of the year (1..12) for _time_. 
   | 
||
| 
      * 
   | 
||
| 
      *     t = Time.now   #=> 2007-11-19 08:27:30 -0600 
   | 
||
| 
      *     t.mon          #=> 11 
   | 
||
| ... | ... | |
| 
      *  call-seq: 
   | 
||
| 
      *     time.year -> fixnum 
   | 
||
| 
      * 
   | 
||
| 
      *  Returns the year for <i>time</i> (including the century). 
   | 
||
| 
      *  Returns the year for _time_ (including the century). 
   | 
||
| 
      * 
   | 
||
| 
      *     t = Time.now   #=> 2007-11-19 08:27:51 -0600 
   | 
||
| 
      *     t.year         #=> 2007 
   | 
||
| ... | ... | |
| 
      *  call-seq: 
   | 
||
| 
      *     time.sunday? -> true or false 
   | 
||
| 
      * 
   | 
||
| 
      *  Returns <code>true</code> if <i>time</i> represents Sunday. 
   | 
||
| 
      *  Returns +true+ if _time_ represents Sunday. 
   | 
||
| 
      * 
   | 
||
| 
      *     t = Time.local(1990, 4, 1)       #=> 1990-04-01 00:00:00 -0600 
   | 
||
| 
      *     t.sunday?                        #=> true 
   | 
||
| ... | ... | |
| 
      *  call-seq: 
   | 
||
| 
      *     time.monday? -> true or false 
   | 
||
| 
      * 
   | 
||
| 
      *  Returns <code>true</code> if <i>time</i> represents Monday. 
   | 
||
| 
      *  Returns +true+ if _time_ represents Monday. 
   | 
||
| 
      * 
   | 
||
| 
      *     t = Time.local(2003, 8, 4)       #=> 2003-08-04 00:00:00 -0500 
   | 
||
| 
      *     p t.monday?                      #=> true 
   | 
||
| ... | ... | |
| 
      *  call-seq: 
   | 
||
| 
      *     time.tuesday? -> true or false 
   | 
||
| 
      * 
   | 
||
| 
      *  Returns <code>true</code> if <i>time</i> represents Tuesday. 
   | 
||
| 
      *  Returns +true+ if _time_ represents Tuesday. 
   | 
||
| 
      * 
   | 
||
| 
      *     t = Time.local(1991, 2, 19)      #=> 1991-02-19 00:00:00 -0600 
   | 
||
| 
      *     p t.tuesday?                     #=> true 
   | 
||
| ... | ... | |
| 
      *  call-seq: 
   | 
||
| 
      *     time.wednesday? -> true or false 
   | 
||
| 
      * 
   | 
||
| 
      *  Returns <code>true</code> if <i>time</i> represents Wednesday. 
   | 
||
| 
      *  Returns +true+ if _time_ represents Wednesday. 
   | 
||
| 
      * 
   | 
||
| 
      *     t = Time.local(1993, 2, 24)      #=> 1993-02-24 00:00:00 -0600 
   | 
||
| 
      *     p t.wednesday?                   #=> true 
   | 
||
| ... | ... | |
| 
      *  call-seq: 
   | 
||
| 
      *     time.thursday? -> true or false 
   | 
||
| 
      * 
   | 
||
| 
      *  Returns <code>true</code> if <i>time</i> represents Thursday. 
   | 
||
| 
      *  Returns +true+ if _time_ represents Thursday. 
   | 
||
| 
      * 
   | 
||
| 
      *     t = Time.local(1995, 12, 21)     #=> 1995-12-21 00:00:00 -0600 
   | 
||
| 
      *     p t.thursday?                    #=> true 
   | 
||
| ... | ... | |
| 
      *  call-seq: 
   | 
||
| 
      *     time.friday? -> true or false 
   | 
||
| 
      * 
   | 
||
| 
      *  Returns <code>true</code> if <i>time</i> represents Friday. 
   | 
||
| 
      *  Returns +true+ if _time_ represents Friday. 
   | 
||
| 
      * 
   | 
||
| 
      *     t = Time.local(1987, 12, 18)     #=> 1987-12-18 00:00:00 -0600 
   | 
||
| 
      *     t.friday?                        #=> true 
   | 
||
| ... | ... | |
| 
      *  call-seq: 
   | 
||
| 
      *     time.saturday? -> true or false 
   | 
||
| 
      * 
   | 
||
| 
      *  Returns <code>true</code> if <i>time</i> represents Saturday. 
   | 
||
| 
      *  Returns +true+ if _time_ represents Saturday. 
   | 
||
| 
      * 
   | 
||
| 
      *     t = Time.local(2006, 6, 10)      #=> 2006-06-10 00:00:00 -0500 
   | 
||
| 
      *     t.saturday?                      #=> true 
   | 
||
| ... | ... | |
| 
      *     time.isdst -> true or false 
   | 
||
| 
      *     time.dst?  -> true or false 
   | 
||
| 
      * 
   | 
||
| 
      *  Returns <code>true</code> if <i>time</i> occurs during Daylight 
   | 
||
| 
      *  Returns +true+ if _time_ occurs during Daylight 
   | 
||
| 
      *  Saving Time in its time zone. 
   | 
||
| 
      * 
   | 
||
| 
      *   # CST6CDT: 
   | 
||
| ... | ... | |
| 
      *  call-seq: 
   | 
||
| 
      *     time.zone -> string 
   | 
||
| 
      * 
   | 
||
| 
      *  Returns the name of the time zone used for <i>time</i>. As of Ruby 
   | 
||
| 
      *  Returns the name of the time zone used for _time_. As of Ruby 
   | 
||
| 
      *  1.8, returns ``UTC'' rather than ``GMT'' for UTC times. 
   | 
||
| 
      * 
   | 
||
| 
      *     t = Time.gm(2000, "jan", 1, 20, 15, 1) 
   | 
||
| ... | ... | |
| 
      *     time.gmtoff     -> fixnum 
   | 
||
| 
      *     time.utc_offset -> fixnum 
   | 
||
| 
      * 
   | 
||
| 
      *  Returns the offset in seconds between the timezone of <i>time</i> 
   | 
||
| 
      *  Returns the offset in seconds between the timezone of _time_ 
   | 
||
| 
      *  and UTC. 
   | 
||
| 
      * 
   | 
||
| 
      *     t = Time.gm(2000,1,1,20,15,1)   #=> 2000-01-01 20:15:01 UTC 
   | 
||
| ... | ... | |
| 
      *  call-seq: 
   | 
||
| 
      *     time.to_a -> array 
   | 
||
| 
      * 
   | 
||
| 
      *  Returns a ten-element <i>array</i> of values for <i>time</i>: 
   | 
||
| 
      *  {<code>[ sec, min, hour, day, month, year, wday, yday, isdst, zone 
   | 
||
| 
      *  ]</code>}. See the individual methods for an explanation of the 
   | 
||
| 
      *  Returns a ten-element _array_ of values for _time_: 
   | 
||
| 
      * 
   | 
||
| 
      *     [sec, min, hour, day, month, year, wday, yday, isdst, zone] 
   | 
||
| 
      * 
   | 
||
| 
      *  See the individual methods for an explanation of the 
   | 
||
| 
      *  valid ranges of each value. The ten elements can be passed directly 
   | 
||
| 
      *  to <code>Time::utc</code> or <code>Time::local</code> to create a 
   | 
||
| 
      *  new <code>Time</code>. 
   | 
||
| 
      *  to Time::utc or Time::local to create a 
   | 
||
| 
      *  new Time object. 
   | 
||
| 
      * 
   | 
||
| 
      *     t = Time.now     #=> 2007-11-19 08:36:01 -0600 
   | 
||
| 
      *     now = t.to_a     #=> [1, 36, 8, 19, 11, 2007, 1, 323, false, "CST"] 
   | 
||
| ... | ... | |
| 
      *  call-seq: 
   | 
||
| 
      *     time.strftime( string ) -> string 
   | 
||
| 
      * 
   | 
||
| 
      *  Formats <i>time</i> according to the directives in the given format 
   | 
||
| 
      *  string. 
   | 
||
| 
      *  The directives begins with a percent (%) character. 
   | 
||
| 
      *  Formats _time_ according to the directives in the given format string. 
   | 
||
| 
      * 
   | 
||
| 
      *  The directives begin with a percent (%) character. 
   | 
||
| 
      *  Any text not listed as a directive will be passed through to the 
   | 
||
| 
      *  output string. 
   | 
||
| 
      * 
   | 
||
| 
      *  The directive consists of a percent (%) character, 
   | 
||
| 
      *  zero or more flags, optional minimum field width, 
   | 
||
| 
      *  optional modifier and a conversion specifier 
   | 
||
| 
      *  as follows. 
   | 
||
| 
      *  as follows: 
   | 
||
| 
      * 
   | 
||
| 
      *    %<flags><width><modifier><conversion> 
   | 
||
| 
      * 
   | 
||
| 
      *  Flags: 
   | 
||
| 
      *    -  don't pad a numerical output. 
   | 
||
| 
      *    _  use spaces for padding. 
   | 
||
| 
      *    0  use zeros for padding. 
   | 
||
| 
      *    ^  upcase the result string. 
   | 
||
| 
      *    #  change case. 
   | 
||
| 
      *    :  use colons for %z. 
   | 
||
| 
      *    -  don't pad a numerical output 
   | 
||
| 
      *    _  use spaces for padding 
   | 
||
| 
      *    0  use zeros for padding 
   | 
||
| 
      *    ^  upcase the result string 
   | 
||
| 
      *    #  change case 
   | 
||
| 
      *    :  use colons for %z 
   | 
||
| 
      * 
   | 
||
| 
      *  The minimum field width specifies the minimum width. 
   | 
||
| 
      * 
   | 
||
| 
      *  The modifier is "E" and "O". 
   | 
||
| 
      *  The modifiers are "E" and "O". 
   | 
||
| 
      *  They are ignored. 
   | 
||
| 
      * 
   | 
||
| 
      *  Format directives: 
   | 
||
| ... | ... | |
| 
      * call-seq: 
   | 
||
| 
      *   Time._load(string)   -> time 
   | 
||
| 
      * 
   | 
||
| 
      * Unmarshal a dumped +Time+ object. 
   | 
||
| 
      * Unmarshal a dumped Time object. 
   | 
||
| 
      */ 
   | 
||
| 
     static VALUE 
   | 
||
| ... | ... | |
| 
      *  with each other -- times that are apparently equal when displayed may be 
   | 
||
| 
      *  different when compared. 
   | 
||
| 
      * 
   | 
||
| 
      *  Since Ruby 1.9.2, Time implementation uses a signed 63 bit integer, Bignum or Rational. 
   | 
||
| 
      *  Since Ruby 1.9.2, Time implementation uses a signed 63 bit integer, 
   | 
||
| 
      *  Bignum or Rational. 
   | 
||
| 
      *  The integer is a number of nanoseconds since the _Epoch_ which can 
   | 
||
| 
      *  represent 1823-11-12 to 2116-02-20. 
   | 
||
| 
      *  When Bignum or Rational is used (before 1823, after 2116, under nanosecond), 
   | 
||
| ... | ... | |
| 
      * 
   | 
||
| 
      *  == Creating a new Time instance 
   | 
||
| 
      * 
   | 
||
| 
      *  You can create a new instance of time with Time.new. This will use the 
   | 
||
| 
      *  current system time. Time.now is a synonym for this. You can also 
   | 
||
| 
      *  pass parts of the time to Time.new such as year, month, minute, etc. When 
   | 
||
| 
      *  You can create a new instance of Time with Time::new. This will use the 
   | 
||
| 
      *  current system time. Time::now is an alias for this. You can also 
   | 
||
| 
      *  pass parts of the time to Time::new such as year, month, minute, etc. When 
   | 
||
| 
      *  you want to construct a time this way you must pass at least a year. If you 
   | 
||
| 
      *  pass the year with nothing else time with default to January 1 of that year 
   | 
||
| 
      *  at 00:00:00 with the current system timezone. Here are some examples: 
   | 
||
| ... | ... | |
| 
      *  You can also use #gm, #local and #utc to infer GMT, local and UTC 
   | 
||
| 
      *  timezones instead of using the current system setting. 
   | 
||
| 
      * 
   | 
||
| 
      *  You can also create a new time using Time.at which takes the number of 
   | 
||
| 
      *  You can also create a new time using Time::at which takes the number of 
   | 
||
| 
      *  seconds (or fraction of seconds) since the {Unix 
   | 
||
| 
      *  Epoch}[http://en.wikipedia.org/wiki/Unix_time]. 
   | 
||
| 
      * 
   | 
||
| ... | ... | |
| 
      * 
   | 
||
| 
      *  == Working with an instance of Time 
   | 
||
| 
      * 
   | 
||
| 
      *  Once you have an instance of time there is a multitude of things you can do 
   | 
||
| 
      *  with it. Below are some examples. For all of the following examples, we 
   | 
||
| 
      *  Once you have an instance of Time there is a multitude of things you can 
   | 
||
| 
      *  do with it. Below are some examples. For all of the following examples, we 
   | 
||
| 
      *  will work on the assumption that you have done the following: 
   | 
||
| 
      * 
   | 
||
| 
      *    t = Time.new(1993, 02, 24, 12, 0, 0, "+09:00") 
   | 
||