#date-time #timezone #chrono #interval #calculations #saving #component

date_component

the missed date_component with chrono. calculate date interval with chrono.

6 releases (3 breaking)

0.4.1 Sep 28, 2023
0.4.0 Sep 25, 2023
0.3.1 Feb 11, 2023
0.3.0 Jul 8, 2022
0.1.2 Feb 19, 2021

#176 in Date and time

Download history 54/week @ 2024-07-26 25/week @ 2024-08-02 20/week @ 2024-08-09 11/week @ 2024-08-16 11/week @ 2024-08-23 41/week @ 2024-08-30 37/week @ 2024-09-06 25/week @ 2024-09-13 82/week @ 2024-09-20 77/week @ 2024-09-27 39/week @ 2024-10-04 46/week @ 2024-10-11 90/week @ 2024-10-18 39/week @ 2024-10-25 596/week @ 2024-11-01 813/week @ 2024-11-08

1,554 downloads per month
Used in starrytoy-rs

MIT license

3.5MB
1K SLoC

Contains (WOFF font, 400KB) NanumBarunGothic-0f09457c7a19b7c6.ttf.woff2, (WOFF font, 135KB) FiraSans-Medium-8f9a781e4970d388.woff2, (WOFF font, 130KB) FiraSans-Regular-018c141bf0843ffd.woff2, (WOFF font, 82KB) SourceSerif4-Bold-a2c9cd1067f8b328.ttf.woff2, (WOFF font, 77KB) SourceSerif4-Regular-46f98efaafac5295.ttf.woff2, (WOFF font, 45KB) SourceCodePro-It-1cc31594bf4f1f79.ttf.woff2 and 3 more.

date_component

calculate dates interval between 2 dates with shared timezone with chrono. and the calculation is considered with Daylight Saving Time.

API

https://gpgkd906.github.io/date_component/date_component/

Example

use chrono::prelude::*;
use date_component::date_component;

fn main() {
    let date1 = Utc.ymd(2015, 4, 20).and_hms(0, 0, 0);
    let date2 =  Utc.ymd(2015, 12, 19).and_hms(0, 0, 0);
    
    let date_interval = date_component::calculate(&date1, &date2);
    println!("{:?}", date_interval);
}
// DateComponent { year: 0, month: 7, week: 4, modulo_days: 1, day: 29, hour: 0, minute: 0, second: 0, interval_seconds: 20995200, interval_minutes: 349920, interval_hours: 5832, interval_days: 243, invert: false }

Tests

Run tests with cargo test. see src/lib.rs.

Dependencies