summaryrefslogtreecommitdiff
path: root/time.c
diff options
context:
space:
mode:
Diffstat (limited to 'time.c')
-rw-r--r--time.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/time.c b/time.c
index 4289f350b8..eea9783a30 100644
--- a/time.c
+++ b/time.c
@@ -128,6 +128,7 @@ Ftime_at(class, time)
return time_new_internal(class, tp->tv_sec, tp->tv_usec);
}
+
static VALUE
Ftime_to_i(time)
VALUE time;
@@ -139,6 +140,16 @@ Ftime_to_i(time)
}
static VALUE
+Ftime_to_f(time)
+ VALUE time;
+{
+ struct time_object *tobj;
+
+ GetTimeval(time, tobj);
+ return float_new((double)tobj->tv.tv_sec+(double)tobj->tv.tv_usec/1000000);
+}
+
+static VALUE
Ftime_usec(time)
VALUE time;
{
@@ -516,6 +527,7 @@ Init_Time()
rb_define_single_method(C_Time, "times", Ftime_times, 0);
rb_define_method(C_Time, "to_i", Ftime_to_i, 0);
+ rb_define_method(C_Time, "to_f", Ftime_to_f, 0);
rb_define_method(C_Time, "<=>", Ftime_cmp, 1);
rb_define_method(C_Time, "hash", Ftime_hash, 0);