activesupport/lib.rs
1//! ```rust
2//! use activesupport::time::{Duration, TimeDuration, TimeRange, Utc, Local, TimeCalculation, Timelike};
3//!
4//! assert_eq!(60.seconds(), Duration::seconds((60).into()));
5//! assert_eq!(1.second(), Duration::seconds((1).into()));
6//! assert_eq!(60.minutes(), Duration::minutes((60).into()));
7//! assert_eq!(1.minute(), Duration::minutes((1).into()));
8//! assert_eq!(60.hours(), Duration::hours((60).into()));
9//! assert_eq!(1.hour(), Duration::hours((1).into()));
10//! assert_eq!(60.days(), Duration::days((60).into()));
11//! assert_eq!(1.day(), Duration::days((1).into()));
12//! assert_eq!(60.weeks(), Duration::weeks((60).into()));
13//! assert_eq!(1.week(), Duration::weeks((1).into()));
14//! assert_eq!(60.fortnights(), Duration::weeks((120).into()));
15//! assert_eq!(1.fortnight(), Duration::weeks((2).into()));
16//!
17//! assert!(1.day().from_now() <= Utc::now().checked_add_signed(1.day().to_owned()));
18//! assert!(2.weeks().from_now() <= Utc::now().checked_add_signed(2.weeks().to_owned()));
19//! assert!(
20//! (4.days() + 5.weeks()).from_now()
21//! <= Utc::now().checked_add_signed((4.days() + 5.weeks()).to_owned())
22//! );
23//!
24//! assert!(1.day().ago() <= Utc::now().checked_sub_signed(1.day().to_owned()));
25//! assert!(2.weeks().ago() <= Utc::now().checked_sub_signed(2.weeks().to_owned()));
26//! assert!(
27//! (4.days() + 5.weeks()).ago()
28//! <= Utc::now().checked_sub_signed((4.days() + 5.weeks()).to_owned())
29//! );
30//!
31//! assert!(1.in_milliseconds() <= 1000);
32//!
33//! let a = Local::now().beginning_of_hour().unwrap();
34//! assert_eq!(a.second(), 0);
35//! assert_eq!(a.nanosecond(), 0);
36//!
37//! let a = Utc::now().end_of_hour().unwrap();
38//! assert_eq!(a.second(), 59);
39//! assert_eq!(a.nanosecond(), 999999999);
40//!
41//! let a = Local::now().end_of_hour().unwrap();
42//! assert_eq!(a.second(), 59);
43//! assert_eq!(a.nanosecond(), 999999999);
44//!
45//! let a = Utc::now().beginning_of_minute().unwrap();
46//! assert_eq!(a.second(), 0);
47//! assert_eq!(a.nanosecond(), 0);
48//!
49//! let a = Local::now().beginning_of_minute().unwrap();
50//! assert_eq!(a.second(), 0);
51//! assert_eq!(a.nanosecond(), 0);
52//!
53//! let a = Utc::now().end_of_minute().unwrap();
54//! assert_eq!(a.second(), 59);
55//! assert_eq!(a.nanosecond(), 999999999);
56//!
57//! let a = Local::now().end_of_minute().unwrap();
58//! assert_eq!(a.second(), 59);
59//! assert_eq!(a.nanosecond(), 999999999);
60//!
61//! let a = Utc::now().beginning_of_day().unwrap();
62//! assert_eq!(a.hour(), 0);
63//! assert_eq!(a.second(), 0);
64//! assert_eq!(a.nanosecond(), 0);
65//!
66//! let a = Local::now().beginning_of_day().unwrap();
67//! assert_eq!(a.hour(), 0);
68//! assert_eq!(a.second(), 0);
69//! assert_eq!(a.nanosecond(), 0);
70//!
71//! let a = Utc::now().end_of_day().unwrap();
72//! assert_eq!(a.hour(), 23);
73//! assert_eq!(a.second(), 59);
74//! assert_eq!(a.nanosecond(), 999999999);
75//!
76//! let a = Local::now().end_of_day().unwrap();
77//! assert_eq!(a.hour(), 23);
78//! assert_eq!(a.second(), 59);
79//! assert_eq!(a.nanosecond(), 999999999);
80//! ```
81pub mod time;