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

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

#125 in Date and time

Download history 3/week @ 2024-01-10 7/week @ 2024-01-24 8/week @ 2024-01-31 2/week @ 2024-02-07 25/week @ 2024-02-14 96/week @ 2024-02-21 51/week @ 2024-02-28 69/week @ 2024-03-06 81/week @ 2024-03-13 85/week @ 2024-03-20 51/week @ 2024-03-27 68/week @ 2024-04-03 112/week @ 2024-04-10 81/week @ 2024-04-17 105/week @ 2024-04-24

382 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