run-pace
Version:
Calculate running pace
255 lines (183 loc) • 5.32 kB
Markdown
# run-pace
Calculate running pace, time or length by providing the other two.
Interactive demo: https://daghall.github.io/run-pace/
# Table of contents
<!-- toc start -->
- [CLI](#cli)
- [Installation](#installation)
- [Usage](#usage)
- [Examples](#examples)
- [Node module](#node-module)
- [Installation](#installation)
- [Usage](#usage)
- [Methods](#methods)
- [`calculateLength`](#calculatelength)
- [Example](#example)
- [`calculateTime`](#calculatetime)
- [Example](#example)
- [`calculatePace`](#calculatepace)
- [Example](#example)
- [Parameters in detail](#parameters-in-detail)
- [Time](#time)
- [`[[dd:][hh:]mm:ss`](#ddhhmmss)
- [Examples](#examples)
- [`X<d>Y<h>Z<m>W<s>`](#xdyhzmws)
- [Examples](#examples)
- [Length](#length)
- [`X<unit>`](#xunit)
- [`<constant>`](#constant)
- [Examples](#examples)
- [Pace](#pace)
- [`<time>/<unit>`](#timeunit)
- [Imperial](#imperial)
- [Metric](#metric)
- [Speed](#speed)
- [Tips and tricks](#tips-and-tricks)
- [Convert kilometer-pace to mile-pace](#convert-kilometer-pace-to-mile-pace)
- [Convert mile-pace to kilometer-pace](#convert-mile-pace-to-kilometer-pace)
- [Convert kilometer-pace to km/h](#convert-kilometer-pace-to-kmh)
- [Convert mile-pace to mph](#convert-mile-pace-to-mph)
<!-- toc end -->
# CLI
Run as a command line program.
## Installation
```npm install -g run-pace```
## Usage
```run-pace -t <time> -l <length> -p <pace> [-i] [-m] [-s]```
Two of "time", "length" and "pace" must be provided.
"Speed" is only valid when (only) pace is given or calculated
```
Parameters:
-l, --length, <value><unit> (10km, 10mi, 10000m, hm, ma)
-p, --pace, <value>/<unit> (4:30/km, 4m30s/mi)
-t, --time, <value> (11:23, 11min23sec, 11m23s)
-i, --imperial, force imperial output
-m, --metric, force metric output
-s, --speed, output speed instead of pace
```
## Examples
```
run-pace -p 4:50/km -t 1hour
12.41 km
run-pace -p 4:50/km -l 3.5km
16:55
run-pace -p 4:30/km -s -i
8.3 mph
run-pace -l 3 -t 15:00
5:00/km
```
# Node module
Use in a node script.
## Installation
```npm install run-pace```
## Usage
```javascript
const runPace = require("run-pace");
```
### Methods
All methods takes an object as its only argument.
#### `calculateLength`
Call with an object with the properties `time` and `length`.
##### Example
```javascript
const length = runPace.calculateLength({
time: "45m",
pace: "4:30/km",
});
console.log(length); // 10km
```
#### `calculateTime`
Call with an object with the properties `pace` and `length`.
##### Example
```javascript
const time = runPace.calculateTime({
length: "10km",
pace: "4:30/km",
});
console.log(time); // 45:00
```
#### `calculatePace`
Call with an object with the properties `time` and `length`.
##### Example
```javascript
const pace = runPace.calculatePace({
time: "45m",
length: "10km",
});
console.log(pace); // 4:30/km
```
## Parameters in detail
### Time
Can be provided in the following formats:
#### `[[dd:][hh:]mm:ss`
##### Examples
- `04:40`
- `2:44:36`
- `0:59`
- `0:3599` (non-standard)
#### `X<d>Y<h>Z<m>W<s>`
Only one unit needs to be provided.
- `<d>`is in the format `days`, `day` or `d`
- `<h>`is in the format `hours`, `hour`, `hrs` or `h`
- `<m>`is in the format `mins`, `min` or `m`
- `<s>`is in the format `secs`, `sec` or `s`
##### Examples
- `2days13hours45mins16secs`
- `3hrs15sec`
- `23m16s`
---
### Length
Defaults to kilometers. If length is provided in miles, imperial output is implicitly enabled, but can be overridden using the [metric](#metric) switch.
If no unit is given, the type is inferred from the [metric](#metric)/[imperial](#imperial) flags, and/or the unit given in the [pace](#pace) field.
#### `X<unit>`
`X` is a number, including optional decimal point
`<unit>` is one of the following:
- Kilometers: `km` or `k`
- Meters: `m`
- Miles: `mi`
- Blank: defaults to kilometers
#### `<constant>`
- Half-marathon: `hm`
- Marathon: `ma`
##### Examples
- `hm`
- `10k`
- `5.25KM`(case-insensitive)
- `26.21875mi`
---
### Pace
Defaults to kilometer pace. If length is provided in miles, imperial output is implicitly enabled, but can be overridden using the [metric](#metric) switch.
#### `<time>/<unit>`
`<time>` as specified [above](#time)
`<unit>` is `km` or `mi` if explicitly given. Left blank it defaults to `km` or is inferred from other given parameters
---
### Imperial
Default output is kilometers. Use this switch to force output in miles.
---
### Metric
If miles are given in [pace](#pace) or [length](#length) output will be in miles as well. Use this switch to force output in kilometers.
---
### Speed
Output speed in instead of pace. Units used are _km/h_ or _mph_ depending on types/options specified.
Only valid if pace is given or calculated.
# Tips and tricks
## Convert kilometer-pace to mile-pace
```
run-pace -t 7m15s -l 1mi -m
4:30/km
```
## Convert mile-pace to kilometer-pace
```
run-pace -t 4:30 -l 1k -i
7:15/mi
```
## Convert kilometer-pace to km/h
```
run-pace -p 4:55/km -s
12.2 km/h
```
## Convert mile-pace to mph
```
run-pace -p 4:00/mi -s
15 mph
```