summaryrefslogtreecommitdiffhomepage
path: root/src/time.c
diff options
context:
space:
mode:
authorYukihiro Matsumoto <[email protected]>2012-06-05 08:58:50 +0900
committerYukihiro Matsumoto <[email protected]>2012-06-05 08:58:50 +0900
commit41baf125f21e3fd49a7849e4b8bbf99e06a31b9e (patch)
tree6b6dce1735dea1a5101ff9519735ba486d5533d9 /src/time.c
parenta7707baecd7760252377e275bb325ea441d52676 (diff)
downloadmruby-41baf125f21e3fd49a7849e4b8bbf99e06a31b9e.tar.gz
mruby-41baf125f21e3fd49a7849e4b8bbf99e06a31b9e.zip
Time#- should return time if operand is a number
Diffstat (limited to 'src/time.c')
-rw-r--r--src/time.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/time.c b/src/time.c
index 24d86bc33..862ff57a9 100644
--- a/src/time.c
+++ b/src/time.c
@@ -363,8 +363,11 @@ mrb_time_minus(mrb_state *mrb, mrb_value self)
return mrb_float_value(f);
}
else {
- mrb_get_args(mrb, "f", &f);
- return mrb_time_make(mrb, mrb_obj_class(mrb, self), f, tm->timezone);
+ mrb_float f, f2;
+ mrb_get_args(mrb, "f", &f2);
+
+ f = ((mrb_float)tm->sec + (mrb_float)tm->usec/1.0e6);
+ return mrb_time_make(mrb, mrb_obj_class(mrb, self), f-f2, tm->timezone);
}
}