/
CDC-1.2b/
CDC-1.2b/src/
parent $libraries
object $time_root

var $root child_index 0
var $root owners [$time_root]
var $root fertile 0
var $root inited 1
var $time_root secs_per_year 31536000
var $time_root mins_per_hour 60
var $time_root secs_per_week 604800
var $time_root secs_per_day 86400
var $time_root created_on 758611955
var $time_root hours_per_day 24
var $time_root days_per_year 365
var $time_root year_begin 0
var $time_root secs_per_min 60
var $time_root days [""]
var $time_root months #[["Jan", "January"], ["Feb", "February"], ["Mar", "March"], ["Apr", "April"], ["May", "May"], ["Jun", "June"], ["Jul", "July"], ["Aug", "August"], ["Sep", "September"], ["Oct", "October"], ["Nov", "November"], ["Dec", "December"]]
var $time_root standard 0
var $time_root secs_per_hour 3600
var $root owned [$time_root]
var $root manager $time_root
var $root writable [$time_root]
var $root readable ['parameters, 'methods, 'code]
var $root dbref 'time_root

method init_time
    .perms(caller(), $root);
    secs_per_min = 60;
    secs_per_hour = 3600;
    secs_per_day = 86400;
    secs_per_week = 604800;
    secs_per_year = 31536000;
    created_on = 0;
    mins_per_hour = 60;
    hours_per_day = 24;
    days_per_year = 365;
    year_begin = 0;
    days = [""];
    months = [""];
    standard = 0;
.

method time
    return .convert();
.

method ctime
    arg [time];
    
    time = [@time, .time()][1];
    if (!standard)
        return "still working on this";
    else
        return ctime(time);
.

method hr_min_sec
    arg [time];
    
    // returns a list: ["hh", "mm", "ss"]
    return [tostr(.hour()), tostr(.minute()), tostr(.second())];
.

method hour
    arg [time];
    
    // either send a pre-converted time, or nothing.
    time = time ? time[1] | (standard ? time() | (.convert()));
    return ((time % secs_per_year) % secs_per_day) / secs_per_hour;
.

method convert
    arg [time];
    
    // converts time into whatever time based off created_on
    return ([@time, time()][1]) - created_on;
.

method minute
    arg [time];
    
    // either send a pre-converted time, or nothing.
    time = time ? time[1] | (standard ? time() | (.convert()));
    return (((time % secs_per_year) % secs_per_day) % secs_per_hour) / secs_per_min;
.

method second
    arg [time];
    
    // either send a pre-converted time, or nothing.
    time = time ? time[1] | (standard ? time() | (.convert()));
    return (((time % secs_per_year) % secs_per_day) % secs_per_hour) % secs_per_min;
.

method year
    arg [time];
    
    // either send a pre-converted time, or nothing.
    // returns years since 'created_on;
    // prolly not right.
    time = time ? time[1] | (standard ? time() | (.convert()));
    return (time / secs_per_year) + year_begin;
.

method day
    arg [time];
    
    // either send a pre-converted time, or nothing.
    // returns days since 'created_on;
    // prolly not right.
    time = time ? time[1] | (standard ? time() | (.convert()));
    return time / secs_per_day;
.

method minute_str
    arg [args];
    
    // will call $integer.int_to_name
    return 'null;
.

method hour_str
    arg [args];
    
    // will call $integer.int_to_name
    return 'null;
.

method second_str
    arg [args];
    
    // will call $integer.int_to_name
    return 'null;
.

method day_str
    arg [time];
    
    time = [@time, .time()][1];
    return tostr(.day());
.

method months
    return months;
.

method days
    return days;
.

method secs_per_min
    return secs_per_min;
.

method secs_per_hour
    return secs_per_hour;
.

method secs_per_day
    return secs_per_day;
.

method secs_per_week
    return secs_per_week;
.

method secs_per_year
    return secs_per_year;
.