#日期-时间 #纯文本 #时间 #解析器 #计算

kairos

在chrono之上,用于优雅地计算日期和时间的库

8 个版本 (4 个破坏性版本)

0.4.0 2024年2月10日
0.3.0 2018年11月9日
0.2.0 2018年5月28日
0.1.1 2018年5月28日
0.0.0 2017年9月2日

#76日期和时间

28 每月下载量
6 个Crates中使用了它 (5 个直接使用)

MPL-2.0 许可证

220KB
5K SLoC

凯罗斯

使用Rust中的chrono "纯文本样式的" 计算时间。

来自维基百科

凯罗斯(καιρός)是古希腊语中的一个词,意思是正确、关键时刻。

这个库在计算日期时提供了对Chrono crate的抽象,几乎就像写纯文本一样

use kairos::timetype::TimeType as TT;

// get the end of the month of the day 5 days ago
let _ = (TT::today() - TT::weeks(1) + TT::days(2)).end_of_month();

// alternative to above
let _ = (TT::today() - TT::days(5)).end_of_month();

// NOTE: The following features are not yet included

// get a vector of dates for the next 4 weeks, starting today
let _ = TT::today()
    .every(TT::week(1))
    .take(4);

// get an iterator of dates for the next year, in a weekly fashion, starting
// today but skipping october
let _ = TT::today()
    .every(TT::week(1))
    .skip(Month::October)
    .until(Mark::END_OF_YEAR);

// and finally, a complex one

let _ = (TT::today() - TT::years(1))       // exactly one year ago
  .every(Day::Monday)                      // and then every Monday
  .skip(Month::October)                    // but not in october
  .skip(|date| date.is(Mark::MONTH_START)) // and not if the day is the 1st of a month
  .until(Mark::Moment(today()));           // until today

解析用户输入

kairos提供了一个用户输入解析器,因此您可以将kairos包含到您的命令行应用程序中。

请参阅示例CLI工具语言文档

许可证

MPL 2.0

依赖关系

~2–3MB
~55K SLoC