#date-time #time #difference #duration #command-line-tool #cli

app since

一个小型的 CLI 工具,用于计算时间差,并具有面向人类的语义 UI

2 个版本

0.11.1 2020 年 6 月 8 日
0.11.0 2020 年 6 月 8 日

#2576命令行工具

MIT/Apache

19KB
299

Since

Since 是什么?

14:30:29 risto@GALACTICA /home/risto>
↪ since 13:00
1 hours and 30 minutes

使用 Cargo 进行安装

cargo install since

现在你应该在 Linux 系统的 ~/.cargo/bin/since 中找到了二进制文件。

用于计算时间差的语义 CLI 工具

↪ since -h
since v0.11.0

Fetch time difference between <from> and <to>.

If no parameters are given, will return time since UNIX epoch.
Missing <to> argument will always default to current datetime.
All subcommands share exactly the same functionality and arguments as base
command, just filtering the output to different format.

All values are generally rounded down.

USAGE:
    since [ARGS]
    since <SUBCOMMAND>

FLAGS:
    -h, --help       Prints help information
    -V, --version    Prints version information

ARGS:
    <from>    Start time or date.
    <to>      End time or date, for custom range. Default is current datetime.

SUBCOMMANDS:
    years      Print the output in years (approx)
    months     Print the output in months (approx)
    weeks      Print the output in weeks (approx)
    days       Print the output in days
    hours      Print the output in hours
    minutes    Print the output in minutes
    seconds    Print the output in seconds

支持的日期和时间格式

所有格式都是硬编码的,并按照“有什么意义”的宽松标准选择,目标是直观,而不是详尽(目前还不是)。

时间

  • HH:MM
  • HH:MM:SS

日期

  • YYYY-MM-DD
  • YYYY/MM/DD
  • YYYY.MM.DD
  • DD-MM-YYYY
  • DD/MM/YYYY
  • DD.MM.YYYY
  • DD MONTH YYYY(例如 Dec 或 December)
  • YYYY MONTH DD

日期时间

  • [date] [time]
  • [date]T[time]

功能说明

  • 尽管有神圣的 UI 语义,但也支持未来值。所有值始终是绝对的距离,因此不应出现负值。
  • 所有输出(特别是周/月/年)通常应视为“直观近似”,因为 when has 1 $time_unit passed 的定义存在歧义。
  • 所有计算都是在本地系统时区中完成的
  • 空格分隔的参数必须始终用引号括起来
  • 所有原始时间(例如 12:15)始终解释为“今天”

示例

 date
Mon  8 Jun 10:12:14 EEST 2020

# The original usecase, shorthand time calculations
↪ since 7:00
3 hours and 12 minutes

↪ since 24.12.2019
6 months

↪ since 24-12-2012T16:00:00
8 years

# Explicit time output formats
↪ since hours 7:00
3

↪ since minutes 7:00
192

↪ since days 7:00
0

↪ since days 24.12.2019
166

↪ since months 24.12.2019
6

↪ since years 24.12.2002
18

# Custom time ranges with explicit second parameter
↪ since minutes 14:00 23:45
585

# Mixing parameter formats
↪ since hours "24 December 2019 18:15:30" 2020-6-20
4286

# Unix epochs
↪ since
1591600334

↪ since minutes
26526672

↪ since years
50

构建

git clone https://github.com/ryyst/since.git
cd since
cargo build --release

现在你可以在 ./target/release/since 中找到二进制文件。

待办事项

  • 测试
  • 改进文档
  • 更精确的年/月计算
  • 十进制输出的标志
  • “猜测”输出的详尽时间分数
    • 例如,“1 年,2 个月,3 天,5 小时和 15 分钟”

依赖关系

~2MB
~24K SLoC