2个不稳定版本

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

#363日期和时间


用于 libtad-rs

MIT 许可证

39KB
686

时间和日期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

ConvertTime 服务

将时间从一个位置转换为多个位置

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);

lib.rs:

Time and Date API服务使用的类型和模型。

依赖关系

~1.4–2.3MB
~71K SLoC