Skip to content

s6ruby/units-time

master
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
lib
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Units of Time (Timstamp, Timedelta)

units-time library / gem - units of time (in epoch time) incl. seconds, minutes, hours, days, weeks, fortnights, years and more

Usage

TimestampTimedelta

The following methods are added on Integer (Fixnum and Bignum) and always return a Timedelta object (in seconds):

# plural versions
2.seconds       #=> <Timedelta seconds=2>
2.secs          #=> <Timedelta seconds=2>
3.minutes       #=> <Timedelta seconds=180>
3.mins          #=> <Timedelta seconds=180>
4.hours         #=> <Timedelta seconds=14_400>
5.days          #=> <Timedelta seconds=432_000>
6.weeks         #=> <Timedelta seconds=3_628_800>
7.fortnights    #=> <Timedelta seconds=8_467_200>
8.years         #=> <Timedelta seconds=252_288_000>

# singular versions
1.second        #=> <Timedelta seconds=1>
1.sec           #=> <Timedelta seconds=1>
1.minute        #=> <Timedelta seconds=60>
1.min           #=> <Timedelta seconds=60>
1.hour          #=> <Timedelta seconds=3600>
1.day           #=> <Timedelta seconds=86_400>
1.week          #=> <Timedelta seconds=604_800>
1.fortnight     #=> <Timedelta seconds=1_209_600>
1.year          #=> <Timedelta seconds=31_536_000>

Time arithmetics

You can add and subtract durations from Timestamp or Timedelta objects.

Timestamp.now + 2.hours      #=> <Timestamp seconds= >
1.week + 1.day               #=> <Timedelta seconds= >
2.minutes - 1.second         #=> <TimeDelta seconds= >

Note: You CANNOT add or subtract integers to Timestamp or Timedelta objects and vice versa.

# Bad
10 + 1.minute   #=> Boom! <TypeError>
1.minute + 10   #=> Boom! <TypeError>

# Good
10.seconds + 1.minute   #=> <Timedelta seconds=70>
1.minute.to_i + 10      #=> Integer

Note: Multiply an integer with 1.hour or 1.minute or 1.second and so on to convert to a time unit.

100*1.hour              #=> <Timedelta seconds=360_000>

Timestamp

The Timestamp class holds the time in seconds since unix epoch time (that is, January 1st, 1970).

Timestamp.new(0)   # or Timestamp(0)

To get the time now use:

Timestamp.now      # or Timestamp.new

Timedelta

The Timedelta class holds a time duration in seconds.

Timedelta.new     # or Timedelta(0)

License

The units-time scripts are dedicated to the public domain. Use it as you please with no restrictions whatsoever.

Questions? Comments?

Send them along to the wwwmake forum. Thanks!

About

units-time library / gem - units of time (in epoch time) incl. seconds, minutes, hours, days, weeks, fortnights, years and more

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages