# timeunit

> Port of Doug Lea's TimeUnit Java class to JavaScript.

Latest version **1.1.1** (published 2014-02-05) · 0 weekly downloads

## Install

```sh
npm install timeunit
pnpm add timeunit
yarn add timeunit
bun add timeunit
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.1.1 |
| Published | 2014-02-05 |
| First published | 2013-11-28 |
| Weekly downloads | 0 |
| TypeScript types | none |
| Module format | CommonJS |
| Node | >=0.6.19 |
| Dependencies | 0 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Author | Jason Walton |
| Maintainers | jwalton |
| Keywords | TimeUnit, time conversion, Doug Lea |

## Links

- npm: https://www.npmjs.com/package/timeunit
- Repository: https://github.com/jwalton/timeunitjs
- Issues: https://github.com/jwalton/timeunitjs/issues
- npm.io page: https://npm.io/package/timeunit

## Recent versions

- 1.1.1 (latest) — 2014-02-05
- 1.1.0 — 2013-11-28
- 1.0.1 — 2013-11-28
- 1.0.0 — 2013-11-28

## README

TimeUnit js
======================

TimeUnit is a port of [Doug Lea](http://g.oswego.edu/)'s public domain TimeUnit Java class
to JavaScript.  It was ported from the
[backport-util-concurrent](http://backport-jsr166.sourceforge.net/) version.
This class is the basis for `java.util.concurrent.TimeUnit` from JavaSE.

Ported by Jason Walton, released under the
[public domain](http://creativecommons.org/licenses/publicdomain).

[![NPM](https://nodei.co/npm/timeunit.png?downloads=true&stars=true)](https://nodei.co/npm/timeunit/)

About
=====

A `timeunit` represents time durations at a given unit of
granularity and provides utility methods to convert across units,
and to perform delay operations in these units.  A
`timeunit` does not maintain time information, but only
helps organize and use time representations that may be maintained
separately across various contexts.

A `timeunit` is mainly used to inform time-based methods
how a given timing parameter should be interpreted.  Time units may be passed as constants
to other methods:

    wait(50, timeunit.seconds);

Or can be used to perform conversions, such as converting 5 seconds into 5000 milliseconds:

    timeunit.seconds.toMilliseconds(5); // Returns 5000
    timeunit.milliseconds.convert(5, timeunit.seconds); // Returns 5000

`timeunit` also define the very handy `sleep()` function, which schedules a function for future
execution using `setTimeout()`:

    timeunit.seconds.sleep(5, function() {
        console.log("Hello after 5 seconds!");
    });

Perhaps even more useful in CoffeeScript, where it is a little easier to use that setTimeout, since
it follows the "callback at the end" idiom used by most node.js code:

    timeunit.seconds.sleep 5, () ->
        console.log "Hello world"

As opposed to the somewhat less pretty:

    setTimeout (()->
        console.log "Hello world"
    ), 5000

A nanosecond is defined as one thousandth of a microsecond, a microsecond as one thousandth of a
millisecond, a millisecond as one thousandth of a second, a minute as sixty seconds, an hour as
sixty minutes, and a day as twenty four hours.

Compatibilty
============

`timeunit` uses [UMD](https://github.com/umdjs/umd) for it's module definition, so should work in
[node.js](http://nodejs.org/), in the browser (via the `timeunit` global), via
[AMD/Require.js](http://requirejs.org/) and via [browersify](http://browserify.org/).

### node.js

Install in node.js with:

    npm install timeunit

### bower

Install with:

    bower install timeunit

---
_Source: https://npm.io/package/timeunit · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
