JM Tech Power

jm-tech-power-official/JMLang

A programming language made by JM Tech Power

Public Uncategorized
Clone jm-tech-power-official/jmlang.jmproj
time.jml
set @time.zone 8

func time.now
    ret -$time$-
end

func time.pad s x
    if $x < 10
        ret $s + "0" + $x
    end
    ret $s + $x
end

func time.clock
    set t -$time$-
    set t $t + $@time.zone * 3600
    set s $t % 86400
    set h $s / 3600
    set m $s % 3600 / 60
    set sec $s % 60
    call time.pad "" , $h
    call time.pad $ret + ":" , $m
    call time.pad $ret + ":" , $sec
    ret $ret
end

func time.date
    set t -$time$-
    set t $t + $@time.zone * 3600
    set z $t / 86400 + 719468
    set era $z / 146097
    set doe $z - $era * 146097
    set yoe $doe - $doe / 1460 + $doe / 36524 - $doe / 146096
    set yoe $yoe / 365
    set y $yoe + $era * 400
    set doy $doe - 365 * $yoe - $yoe / 4 + $yoe / 100
    set mp 5 * $doy + 2
    set mp $mp / 153
    set d 153 * $mp + 2
    set d $doy - $d / 5 + 1
    set m $mp + 3
    if $mp >= 10
        set m $mp - 9
    end
    if $m <= 2
        set y $y + 1
    end
    call time.pad $y + "-" , $m
    call time.pad $ret + "-" , $d
    ret $ret
end

func time.sleep ms
    set end $ms + -$tick$-
    while -$tick$- < $end
        set x 0
    end
end

func time.start
    set @time.t0 -$tick$-
end

func time.elapsed
    ret -$tick$- - $@time.t0
end