2 个不稳定版本

0.2.0 2021 年 9 月 8 日
0.1.0 2021 年 8 月 31 日

#186 in #date

MIT 许可证

105KB
2K SLoC

时间和日期 Rust API

docs.rs Crates.io Build Status

libtad-rs 是一个用于访问时间和日期 API 服务的 Rust 库。

使用 API 需要一个访问密钥和一个密钥。更多信息,请参阅我们的 API 服务页面

Cargo 功能

  • "sync-client": 默认启用。
  • "async-client": 默认禁用。

"async-client" 可以通过禁用默认功能并将 "async-client" 添加为功能来启用。

天文学 API

天体事件服务

获取多个地点和物体的天体事件

let client = ServiceClient::new("access_key".into(), "secret_key".into());
let request = AstroEventRequest::new()
    .with_object(AstronomyObjectType::Sun)
    .with_object(AstronomyObjectType::Saturn)
    .with_placeid("3")
    .with_placeid("4")
    .set_startdt(DateTime::from("2021-08-18"));

let response = client.get_astro_events(&request);

天体位置服务

获取多个地点和物体的天体数据

let request = AstroPositionRequest::new()
    .with_object(AstronomyObjectType::Sun)
    .with_placeid("3")
    .with_placeid("norway/oslo")
    .with_interval(DateTime::from("2021-08-18"))
    .with_interval(DateTime::from("2021-08-25"));

let response = client.get_astro_position(&request);

日期计算器 API

业务日期服务

通过给定的日期添加天数来计算业务日期

let request = BusinessDateRequest::new()
	.set_placeid("norway/stavanger")
	.set_startdt(DateTime::from("2021-04-04"))
	.with_days(4);

let response = client.calculate_business_date(&request);

通过从给定的日期减去天数来计算业务日期

let request = BusinessDateRequest::new()
	.set_placeid("norway/stavanger")
	.set_startdt(DateTime::from("2021-04-04"))
	.with_days(4)
	.set_subtraction();

let response = client.calculate_business_date(&request);

业务持续时间服务

计算两个时间戳之间的持续时间

let request = BusinessDurationRequest::new()
	.set_placeid("norway/stavanger")
	.set_startdt(DateTime::from("2021-04-04"))
	.set_enddt(DateTime::from("2021-04-21"));

let response = client.calculate_business_duration(&request);

假日 API

获取一年中一个或多个国家的所有假日

let request = HolidaysRequest::new()
	.with_country("no")
	.with_country("us")
	.set_year(2022);

let response = client.get_holidays(&request);

今天这一天 API

获取这一天的事件

let request = OnThisDayRequest::new();

let response = client.get_events_on_this_day(&request);

获取给定月份和日期的事件

let request = OnThisDayRequest::new()
	.set_month(4)
	.set_day(24);

let response = client.get_events_on_this_day(&request);

按事件类型筛选事件

let request = OnThisDayRequest::new()
	.with_type(EventType::Events)
	.with_type(EventType::Births);

let response = client.get_events_on_this_day(&request);

地点 API

获取所有地点

let request = PlacesRequest::new();

let response = client.get_places(&request);

查询地点

let request = PlacesRequest::new()
	.set_query("new york")
	.set_qlimit(10);

let response = client.get_places(&request);

潮汐 API

获取一个或多个地点的潮汐数据

let request = TidesRequest::new()
	.with_placeid("norway/sola")
	.with_placeid("norway/oslo");

let response = client.get_tidal_data(&request);

时间 API

转换时间服务

将地点的时间转换为多个地点的时间

let request = ConvertTimeRequest::new()
    .set_fromid("norway/oslo")
    .with_toid("usa/chicago")
    .with_toid("179")
    .set_datetime(DateTime::from("2021-04-05T16:45:02"));

let response = client.convert_time(&request);

DSTList 服务

获取所有夏令时

let request = DSTListRequest::new();

let response = client.get_daylight_savings_time(&request);

获取特定年份的夏令时

let request = DSTListRequest::new().set_year(2021);

let response = client.get_daylight_savings_time(&request);

Timeservice 服务

获取地点的当前时间

let request = TimeserviceRequest::new()
	.set_placeid("norway/oslo");

let response = client.get_current_time(&request);

依赖项

~3–17MB
~268K SLoC