Files
qrust/src/utils/time.rs
2024-02-26 18:55:15 +00:00

29 lines
924 B
Rust

use lazy_static::lazy_static;
use std::time::Duration;
use time::{OffsetDateTime, UtcOffset};
pub const ONE_SECOND: Duration = Duration::from_secs(1);
pub const ONE_MINUTE: Duration = Duration::from_secs(60);
pub const FIFTEEN_MINUTES: Duration = Duration::from_secs(60 * 15);
lazy_static! {
pub static ref MAX_TIMESTAMP: OffsetDateTime =
OffsetDateTime::from_unix_timestamp(253_402_300_799).unwrap();
pub static ref EST_OFFSET: UtcOffset = UtcOffset::from_hms(-5, 0, 0).unwrap();
}
pub fn last_minute() -> OffsetDateTime {
let now_timestamp = OffsetDateTime::now_utc().unix_timestamp();
OffsetDateTime::from_unix_timestamp(now_timestamp - now_timestamp % 60).unwrap()
}
pub fn duration_until(time: OffsetDateTime) -> Duration {
let duration = time - OffsetDateTime::now_utc();
if duration.is_positive() {
duration.unsigned_abs()
} else {
Duration::default()
}
}