mirror of
https://github.com/adambard/learnxinyminutes-docs.git
synced 2025-04-26 15:13:56 +00:00
[rink/en] Add Rink tool
This commit is contained in:
parent
7f0f27d84d
commit
59db371e63
214
rink.md
Normal file
214
rink.md
Normal file
@ -0,0 +1,214 @@
|
|||||||
|
---
|
||||||
|
category: tool
|
||||||
|
name: Rink
|
||||||
|
contributors:
|
||||||
|
- ["Evan Hahn", "https://evanhahn.com/"]
|
||||||
|
filename: LearnRink.txt
|
||||||
|
---
|
||||||
|
|
||||||
|
[Rink](https://rinkcalc.app/about) is a unit-aware calculator for the command
|
||||||
|
line and [the browser](https://rinkcalc.app/).
|
||||||
|
|
||||||
|
Start the Rink REPL with `rink`, or run a calculation with
|
||||||
|
`rink '10 pounds to kilograms'`.
|
||||||
|
|
||||||
|
Rink values are numbers with units:
|
||||||
|
|
||||||
|
```
|
||||||
|
> 123 kilometers
|
||||||
|
123 kilometer (length)
|
||||||
|
|
||||||
|
> 1.5 radians
|
||||||
|
1.5 radian (angle)
|
||||||
|
```
|
||||||
|
|
||||||
|
You don't _need_ units, though. Values can be "dimensionless":
|
||||||
|
|
||||||
|
```
|
||||||
|
> 123
|
||||||
|
123 (dimensionless)
|
||||||
|
|
||||||
|
> -456.78
|
||||||
|
-456.78 (dimensionless)
|
||||||
|
```
|
||||||
|
|
||||||
|
Rink supports arbitrary precision:
|
||||||
|
|
||||||
|
```
|
||||||
|
> 2/3 * 1/6
|
||||||
|
0.[1]... (dimensionless)
|
||||||
|
|
||||||
|
> 1e20000 / 2e20001
|
||||||
|
0.05 (dimensionless)
|
||||||
|
```
|
||||||
|
|
||||||
|
Convert units, including currencies:
|
||||||
|
|
||||||
|
```
|
||||||
|
> 10 pounds to kilograms
|
||||||
|
approx. 4.535923 kilogram (mass)
|
||||||
|
|
||||||
|
> 32 degF to degC
|
||||||
|
0 °C (temperature)
|
||||||
|
|
||||||
|
> 1 KiB to B
|
||||||
|
1024 byte (information)
|
||||||
|
|
||||||
|
> 2 halfnotes to wholenote
|
||||||
|
1 wholenote (musical_note_length)
|
||||||
|
|
||||||
|
> 1 EUR to INR
|
||||||
|
97.4838 INR (money)
|
||||||
|
|
||||||
|
> 52 weeks to seconds
|
||||||
|
31449600 second (time)
|
||||||
|
```
|
||||||
|
|
||||||
|
You can use `->` instead of `to`, which can be easier to read:
|
||||||
|
|
||||||
|
```
|
||||||
|
> 52 weeks -> seconds
|
||||||
|
31449600 second (time)
|
||||||
|
```
|
||||||
|
|
||||||
|
Do math with units:
|
||||||
|
|
||||||
|
```
|
||||||
|
> 1.5 hours + 30 minutes
|
||||||
|
2 hour, 0 second (time)
|
||||||
|
|
||||||
|
> 100 GB / 25 mbps
|
||||||
|
8 hour, 53 minute, 20 second (time)
|
||||||
|
```
|
||||||
|
|
||||||
|
Combine math with unit conversion:
|
||||||
|
|
||||||
|
```
|
||||||
|
> 12 megabytes + 34 kilobytes + 56 bytes -> bytes
|
||||||
|
12034056 byte (information)
|
||||||
|
```
|
||||||
|
|
||||||
|
Convert a time to another time zone:
|
||||||
|
|
||||||
|
```
|
||||||
|
> #2025-04-20T18:09 America/Chicago# -> "Africa/Lagos"
|
||||||
|
2025-04-21 00:09:00 WAT
|
||||||
|
|
||||||
|
> #01:23# -> "America/Sao_Paulo"
|
||||||
|
2019-01-23 05:23:00 -02
|
||||||
|
|
||||||
|
> now -> "Asia/Yangon"
|
||||||
|
2019-01-23 17:26:00 +0630
|
||||||
|
```
|
||||||
|
|
||||||
|
Compute time deltas:
|
||||||
|
|
||||||
|
```
|
||||||
|
> #2025-01-23# - #2024-02-10#
|
||||||
|
49 week, 5 day, 0 second (time)
|
||||||
|
|
||||||
|
> #2025-01-23# - #2024-02-10# -> day
|
||||||
|
348 day (time)
|
||||||
|
|
||||||
|
> #2025-01-23# - #2024-02-10# -> hour
|
||||||
|
8352 hour (time)
|
||||||
|
|
||||||
|
> now - #2025-01-01# -> day
|
||||||
|
109 day (time)
|
||||||
|
```
|
||||||
|
|
||||||
|
Math with time deltas:
|
||||||
|
|
||||||
|
```
|
||||||
|
> now + 3 days
|
||||||
|
2020-01-26 01:23:00 +00:00
|
||||||
|
|
||||||
|
> now - (four score years + seven years)
|
||||||
|
1933-01-22 23:40:20.182200 +00:00 (92 years ago)
|
||||||
|
```
|
||||||
|
|
||||||
|
Remember that _months and years are weird_ (at no fault of Rink).
|
||||||
|
Compare Rink's default `year` and `month` units to alternate ones:
|
||||||
|
|
||||||
|
```
|
||||||
|
> 1 year -> days
|
||||||
|
approx. 365.2421 day (time)
|
||||||
|
|
||||||
|
> 1 calendaryear -> days
|
||||||
|
365 day (time)
|
||||||
|
|
||||||
|
> 1 month -> days
|
||||||
|
approx. 30.43684 day (time)
|
||||||
|
|
||||||
|
> 1 lunarmonth -> days
|
||||||
|
approx. 29.53058 day (time)
|
||||||
|
```
|
||||||
|
|
||||||
|
Work with percentages:
|
||||||
|
|
||||||
|
```
|
||||||
|
> 0.25 -> percent
|
||||||
|
25 percent (dimensionless)
|
||||||
|
|
||||||
|
> 25 percent
|
||||||
|
0.25 (dimensionless)
|
||||||
|
|
||||||
|
> 100 meters * 25 percent
|
||||||
|
25 meter (length)
|
||||||
|
```
|
||||||
|
|
||||||
|
Use helpers like "billion" and "thousand":
|
||||||
|
|
||||||
|
```
|
||||||
|
> 1 billion / 1 million
|
||||||
|
1000 (dimensionless)
|
||||||
|
|
||||||
|
> 1 billion kilograms / 1 million pounds
|
||||||
|
approx. 2204.622 (dimensionless)
|
||||||
|
```
|
||||||
|
|
||||||
|
Convert numbers between bases, such as hexadecimal and binary:
|
||||||
|
|
||||||
|
```
|
||||||
|
> 0x45
|
||||||
|
69 (dimensionless)
|
||||||
|
|
||||||
|
> 0b1010011010
|
||||||
|
666 (dimensionless)
|
||||||
|
|
||||||
|
> 420 -> base 16
|
||||||
|
1a4 (dimensionless)
|
||||||
|
|
||||||
|
> 420 -> hex
|
||||||
|
1a4 (dimensionless)
|
||||||
|
|
||||||
|
> 420 -> base 2
|
||||||
|
110100100 (dimensionless)
|
||||||
|
|
||||||
|
> 420 -> bin
|
||||||
|
110100100 (dimensionless)
|
||||||
|
```
|
||||||
|
|
||||||
|
Use simple math functions, like square root.
|
||||||
|
_Note that these do not use arbitrary precision._
|
||||||
|
|
||||||
|
```
|
||||||
|
> sqrt(4)
|
||||||
|
approx. 2 (dimensionless)
|
||||||
|
|
||||||
|
> sqrt(4) meters
|
||||||
|
approx. 2 meter (length)
|
||||||
|
```
|
||||||
|
|
||||||
|
Rink supports a number of constants, such as the volume of celestial bodies:
|
||||||
|
|
||||||
|
```
|
||||||
|
> volume of uranus / volume of moon
|
||||||
|
approx. 3111.849 (dimensionless)
|
||||||
|
```
|
||||||
|
|
||||||
|
## Further Information
|
||||||
|
|
||||||
|
- [Rink homepage](https://rinkcalc.app/about)
|
||||||
|
|
||||||
|
- [`rink` manpage](https://rinkcalc.app/manual)
|
Loading…
Reference in New Issue
Block a user