From 6d4054a3a7b0d21da03a77c3e3d2f735b5f28aca Mon Sep 17 00:00:00 2001 From: Kang Seonghoon Date: Sun, 3 May 2015 14:38:27 +0900 Subject: [PATCH] some more docs for NaiveDate. --- src/naive/date.rs | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/src/naive/date.rs b/src/naive/date.rs index fb21365..2d8a520 100644 --- a/src/naive/date.rs +++ b/src/naive/date.rs @@ -156,6 +156,20 @@ impl NaiveDate { /// This assumes the proleptic Gregorian calendar, with the year 0 being 1 BCE. /// /// Returns `None` on the out-of-range date and/or invalid DOY. + /// + /// # Example + /// + /// ~~~~ + /// use chrono::NaiveDate; + /// + /// assert!(NaiveDate::from_yo_opt(2015, 100).is_some()); + /// assert!(NaiveDate::from_yo_opt(2015, 0).is_none()); + /// assert!(NaiveDate::from_yo_opt(2015, 365).is_some()); + /// assert!(NaiveDate::from_yo_opt(2015, 366).is_none()); + /// assert!(NaiveDate::from_yo_opt(-4, 366).is_some()); // 5 BCE is a leap year + /// assert!(NaiveDate::from_yo_opt(400000, 1).is_none()); + /// assert!(NaiveDate::from_yo_opt(-400000, 1).is_none()); + /// ~~~~ pub fn from_yo_opt(year: i32, ordinal: u32) -> Option { let flags = YearFlags::from_year(year); NaiveDate::from_of(year, Of::new(ordinal, flags)) @@ -242,8 +256,23 @@ impl NaiveDate { /// in the proleptic Gregorian calendar. /// /// Returns `None` on the out-of-range date. + /// + /// # Example + /// + /// ~~~~ + /// use chrono::NaiveDate; + /// + /// assert_eq!(NaiveDate::from_num_days_from_ce_opt(730000), + /// Some(NaiveDate::from_ymd(1999, 9, 3))); + /// assert_eq!(NaiveDate::from_num_days_from_ce_opt(1), + /// Some(NaiveDate::from_ymd(1, 1, 1))); + /// assert_eq!(NaiveDate::from_num_days_from_ce_opt(0), + /// Some(NaiveDate::from_ymd(0, 12, 31))); + /// assert_eq!(NaiveDate::from_num_days_from_ce_opt(100000000), None); + /// assert_eq!(NaiveDate::from_num_days_from_ce_opt(-100000000), None); + /// ~~~~ pub fn from_num_days_from_ce_opt(days: i32) -> Option { - let days = days + 365; // make January 1, 1 BCE equal to day 0 + let days = days + 365; // make December 31, 1 BCE equal to day 0 let (year_div_400, cycle) = div_mod_floor(days, 146097); let (year_mod_400, ordinal) = internals::cycle_to_yo(cycle as u32); let flags = YearFlags::from_year_mod_400(year_mod_400 as i32);