3 个不稳定版本
0.2.1 | 2024年1月12日 |
---|---|
0.2.0 | 2023年4月28日 |
0.1.0 | 2023年3月25日 |
115 在 日期和时间 中
1,698 每月下载
45KB
816 行
概述
这是一个库crate,用于查找纽约证券交易所观察到的市场假日信息。
用例
- 确定特定日期是否是/曾是NYSE市场假日
- 确定NYSE在特定日期观察到或计划观察到的假日
- 遍历连续的营业日序列
- 对日期进行基本的营业日算术运算
- 在日期和月序营业日之间进行转换
用法
此crate旨在与表示公历日期的外国日期类型一起工作。默认情况下,使用 chrono::NaiveDate
作为日期类型,但通过启用可选crate功能 time
,也添加了对 time::Date
的支持。
查找假日和营业日信息的主要接口是特质 HolidayCal
。此特质为所有支持的外国日期类型实现。
执行营业日算术的主要接口是结构 DeltaBusinessDays
。此结构表示整数个营业日,可以通过标准库中的 Add
和 Sub
特质与支持的外国日期类型进行算术运算。
为什么不选择其他crate?
在Rust生态系统中有几个其他假日日历crate,它们提供开发假日日历功能的框架。
然而,这些crate不适用于实现NYSE假日日历,因为它们都假设可以确定任何日期的假日状态。通常,只有在发布最新官方NYSE假日日历的年份之前,才能确定日期是否是NYSE市场假日。
设计
该创建的设计简单,它根据纽交所发布的官方日程,维护一个观察和计划中的市场假日列表。这个已知的市场假日列表定义了一个范围,从MIN_YEAR
年的1月1日到MAX_YEAR
年的12月31日。在范围内的日期,只有在它们等于假日列表中的某个日期时,才被认为是市场假日。对于范围之外的日期,无法确定它们是否为纽交所市场假日,因此通常在涉及此类日期的查询中返回Err(OutOfRange)
。
当纽交所发布新一年的市场假日日历时,假日列表将相应更新,MAX_YEAR
将相应增加,并且这个crate的补丁版本也将增加。
通常,纽交所会提前1-2年发布当前日期的假日日历。
依赖项
~1–1.4MB
~21K SLoC