[Open] conversion WIN32OLE_VARIANT and Time

Issue #10258 has been reported by Masaki S…


Bug #10258: conversion WIN32OLE_VARIANT and Time
https://bugs.ruby-lang.org/issues/10258

  • Author: Masaki S.
  • Status: Open
  • Priority: Normal
  • Assignee: Masaki S.
  • Category: core
  • Target version: current: 2.2.0
  • ruby -v: 2.2.0dev, 2.2.0-preview1
  • Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN

今日、うささんに教えていただいたテストの失敗は、こういう事象と同様だと思われます。
require ‘win32ole’
t0 = Time.new(2014,9,19)
t0 += 0.9999
v = WIN32OLE_VARIANT.new(t0)
t1 = v.value
p t0 # => 2014-09-19 00:00:00 +0900
p t1 # => 2014-09-19 00:00:01 +0900
p t0.to_f # => 1411052400.9999
p t1.to_f # => 1411052401.0

t0 = Time.new(2014,9,19, 0, 0, 59)
t0 += 0.9999
v = WIN32OLE_VARIANT.new(t0)
t1 = v.value
p t0 # => 2014-09-19 00:00:59 +0900
p t1 # => 2014-09-19 00:02:00 +0900
p t0.to_f # => 1411052459.9999
p t1.to_f # => 1411052520.0