[−][src]Trait chrono::Datelike
The common set of methods for date component.
Required methods
fn year(&self) -> i32
Returns the year number in the calendar date.
fn month(&self) -> u32
Returns the month number starting from 1.
The return value ranges from 1 to 12.
fn month0(&self) -> u32
Returns the month number starting from 0.
The return value ranges from 0 to 11.
fn day(&self) -> u32
Returns the day of month starting from 1.
The return value ranges from 1 to 31. (The last day of month differs by months.)
fn day0(&self) -> u32
Returns the day of month starting from 0.
The return value ranges from 0 to 30. (The last day of month differs by months.)
fn ordinal(&self) -> u32
Returns the day of year starting from 1.
The return value ranges from 1 to 366. (The last day of year differs by years.)
fn ordinal0(&self) -> u32
Returns the day of year starting from 0.
The return value ranges from 0 to 365. (The last day of year differs by years.)
fn weekday(&self) -> Weekday
Returns the day of week.
fn iso_week(&self) -> IsoWeek
Returns the ISO week.
fn with_year(&self, year: i32) -> Option<Self>
Makes a new value with the year number changed.
Returns None
when the resulting value would be invalid.
fn with_month(&self, month: u32) -> Option<Self>
Makes a new value with the month number (starting from 1) changed.
Returns None
when the resulting value would be invalid.
fn with_month0(&self, month0: u32) -> Option<Self>
Makes a new value with the month number (starting from 0) changed.
Returns None
when the resulting value would be invalid.
fn with_day(&self, day: u32) -> Option<Self>
Makes a new value with the day of month (starting from 1) changed.
Returns None
when the resulting value would be invalid.
fn with_day0(&self, day0: u32) -> Option<Self>
Makes a new value with the day of month (starting from 0) changed.
Returns None
when the resulting value would be invalid.
fn with_ordinal(&self, ordinal: u32) -> Option<Self>
Makes a new value with the day of year (starting from 1) changed.
Returns None
when the resulting value would be invalid.
fn with_ordinal0(&self, ordinal0: u32) -> Option<Self>
Makes a new value with the day of year (starting from 0) changed.
Returns None
when the resulting value would be invalid.
Provided methods
fn year_ce(&self) -> (bool, u32)
Returns the absolute year number starting from 1 with a boolean flag, which is false when the year predates the epoch (BCE/BC) and true otherwise (CE/AD).
fn num_days_from_ce(&self) -> i32
Returns the number of days since January 1, Year 1 (aka Day 1) in the proleptic Gregorian calendar.
Example:
use chrono::{NaiveDate, Datelike}; assert_eq!(NaiveDate::from_ymd(1970, 1, 1).num_days_from_ce(), 719163); assert_eq!(NaiveDate::from_ymd(0, 1, 1).num_days_from_ce(), -365);
Implementors
impl Datelike for NaiveDate
[src]
fn year(&self) -> i32
[src]
Returns the year number in the calendar date.
Example
use chrono::{NaiveDate, Datelike}; assert_eq!(NaiveDate::from_ymd(2015, 9, 8).year(), 2015); assert_eq!(NaiveDate::from_ymd(-308, 3, 14).year(), -308); // 309 BCE
fn month(&self) -> u32
[src]
Returns the month number starting from 1.
The return value ranges from 1 to 12.
Example
use chrono::{NaiveDate, Datelike}; assert_eq!(NaiveDate::from_ymd(2015, 9, 8).month(), 9); assert_eq!(NaiveDate::from_ymd(-308, 3, 14).month(), 3);
fn month0(&self) -> u32
[src]
Returns the month number starting from 0.
The return value ranges from 0 to 11.
Example
use chrono::{NaiveDate, Datelike}; assert_eq!(NaiveDate::from_ymd(2015, 9, 8).month0(), 8); assert_eq!(NaiveDate::from_ymd(-308, 3, 14).month0(), 2);
fn day(&self) -> u32
[src]
Returns the day of month starting from 1.
The return value ranges from 1 to 31. (The last day of month differs by months.)
Example
use chrono::{NaiveDate, Datelike}; assert_eq!(NaiveDate::from_ymd(2015, 9, 8).day(), 8); assert_eq!(NaiveDate::from_ymd(-308, 3, 14).day(), 14);
Combined with NaiveDate::pred
,
one can determine the number of days in a particular month.
(Note that this panics when year
is out of range.)
use chrono::{NaiveDate, Datelike}; fn ndays_in_month(year: i32, month: u32) -> u32 { // the first day of the next month... let (y, m) = if month == 12 { (year + 1, 1) } else { (year, month + 1) }; let d = NaiveDate::from_ymd(y, m, 1); // ...is preceded by the last day of the original month d.pred().day() } assert_eq!(ndays_in_month(2015, 8), 31); assert_eq!(ndays_in_month(2015, 9), 30); assert_eq!(ndays_in_month(2015, 12), 31); assert_eq!(ndays_in_month(2016, 2), 29); assert_eq!(ndays_in_month(2017, 2), 28);
fn day0(&self) -> u32
[src]
Returns the day of month starting from 0.
The return value ranges from 0 to 30. (The last day of month differs by months.)
Example
use chrono::{NaiveDate, Datelike}; assert_eq!(NaiveDate::from_ymd(2015, 9, 8).day0(), 7); assert_eq!(NaiveDate::from_ymd(-308, 3, 14).day0(), 13);
fn ordinal(&self) -> u32
[src]
Returns the day of year starting from 1.
The return value ranges from 1 to 366. (The last day of year differs by years.)
Example
use chrono::{NaiveDate, Datelike}; assert_eq!(NaiveDate::from_ymd(2015, 9, 8).ordinal(), 251); assert_eq!(NaiveDate::from_ymd(-308, 3, 14).ordinal(), 74);
Combined with NaiveDate::pred
,
one can determine the number of days in a particular year.
(Note that this panics when year
is out of range.)
use chrono::{NaiveDate, Datelike}; fn ndays_in_year(year: i32) -> u32 { // the first day of the next year... let d = NaiveDate::from_ymd(year + 1, 1, 1); // ...is preceded by the last day of the original year d.pred().ordinal() } assert_eq!(ndays_in_year(2015), 365); assert_eq!(ndays_in_year(2016), 366); assert_eq!(ndays_in_year(2017), 365); assert_eq!(ndays_in_year(2000), 366); assert_eq!(ndays_in_year(2100), 365);
fn ordinal0(&self) -> u32
[src]
Returns the day of year starting from 0.
The return value ranges from 0 to 365. (The last day of year differs by years.)
Example
use chrono::{NaiveDate, Datelike}; assert_eq!(NaiveDate::from_ymd(2015, 9, 8).ordinal0(), 250); assert_eq!(NaiveDate::from_ymd(-308, 3, 14).ordinal0(), 73);
fn weekday(&self) -> Weekday
[src]
Returns the day of week.
Example
use chrono::{NaiveDate, Datelike, Weekday}; assert_eq!(NaiveDate::from_ymd(2015, 9, 8).weekday(), Weekday::Tue); assert_eq!(NaiveDate::from_ymd(-308, 3, 14).weekday(), Weekday::Fri);
fn iso_week(&self) -> IsoWeek
[src]
fn with_year(&self, year: i32) -> Option<NaiveDate>
[src]
Makes a new NaiveDate
with the year number changed.
Returns None
when the resulting NaiveDate
would be invalid.
Example
use chrono::{NaiveDate, Datelike}; assert_eq!(NaiveDate::from_ymd(2015, 9, 8).with_year(2016), Some(NaiveDate::from_ymd(2016, 9, 8))); assert_eq!(NaiveDate::from_ymd(2015, 9, 8).with_year(-308), Some(NaiveDate::from_ymd(-308, 9, 8)));
A leap day (February 29) is a good example that this method can return None
.
assert!(NaiveDate::from_ymd(2016, 2, 29).with_year(2015).is_none()); assert!(NaiveDate::from_ymd(2016, 2, 29).with_year(2020).is_some());
fn with_month(&self, month: u32) -> Option<NaiveDate>
[src]
Makes a new NaiveDate
with the month number (starting from 1) changed.
Returns None
when the resulting NaiveDate
would be invalid.
Example
use chrono::{NaiveDate, Datelike}; assert_eq!(NaiveDate::from_ymd(2015, 9, 8).with_month(10), Some(NaiveDate::from_ymd(2015, 10, 8))); assert_eq!(NaiveDate::from_ymd(2015, 9, 8).with_month(13), None); // no month 13 assert_eq!(NaiveDate::from_ymd(2015, 9, 30).with_month(2), None); // no February 30
fn with_month0(&self, month0: u32) -> Option<NaiveDate>
[src]
Makes a new NaiveDate
with the month number (starting from 0) changed.
Returns None
when the resulting NaiveDate
would be invalid.
Example
use chrono::{NaiveDate, Datelike}; assert_eq!(NaiveDate::from_ymd(2015, 9, 8).with_month0(9), Some(NaiveDate::from_ymd(2015, 10, 8))); assert_eq!(NaiveDate::from_ymd(2015, 9, 8).with_month0(12), None); // no month 13 assert_eq!(NaiveDate::from_ymd(2015, 9, 30).with_month0(1), None); // no February 30
fn with_day(&self, day: u32) -> Option<NaiveDate>
[src]
Makes a new NaiveDate
with the day of month (starting from 1) changed.
Returns None
when the resulting NaiveDate
would be invalid.
Example
use chrono::{NaiveDate, Datelike}; assert_eq!(NaiveDate::from_ymd(2015, 9, 8).with_day(30), Some(NaiveDate::from_ymd(2015, 9, 30))); assert_eq!(NaiveDate::from_ymd(2015, 9, 8).with_day(31), None); // no September 31
fn with_day0(&self, day0: u32) -> Option<NaiveDate>
[src]
Makes a new NaiveDate
with the day of month (starting from 0) changed.
Returns None
when the resulting NaiveDate
would be invalid.
Example
use chrono::{NaiveDate, Datelike}; assert_eq!(NaiveDate::from_ymd(2015, 9, 8).with_day0(29), Some(NaiveDate::from_ymd(2015, 9, 30))); assert_eq!(NaiveDate::from_ymd(2015, 9, 8).with_day0(30), None); // no September 31
fn with_ordinal(&self, ordinal: u32) -> Option<NaiveDate>
[src]
Makes a new NaiveDate
with the day of year (starting from 1) changed.
Returns None
when the resulting NaiveDate
would be invalid.
Example
use chrono::{NaiveDate, Datelike}; assert_eq!(NaiveDate::from_ymd(2015, 1, 1).with_ordinal(60), Some(NaiveDate::from_ymd(2015, 3, 1))); assert_eq!(NaiveDate::from_ymd(2015, 1, 1).with_ordinal(366), None); // 2015 had only 365 days assert_eq!(NaiveDate::from_ymd(2016, 1, 1).with_ordinal(60), Some(NaiveDate::from_ymd(2016, 2, 29))); assert_eq!(NaiveDate::from_ymd(2016, 1, 1).with_ordinal(366), Some(NaiveDate::from_ymd(2016, 12, 31)));
fn with_ordinal0(&self, ordinal0: u32) -> Option<NaiveDate>
[src]
Makes a new NaiveDate
with the day of year (starting from 0) changed.
Returns None
when the resulting NaiveDate
would be invalid.
Example
use chrono::{NaiveDate, Datelike}; assert_eq!(NaiveDate::from_ymd(2015, 1, 1).with_ordinal0(59), Some(NaiveDate::from_ymd(2015, 3, 1))); assert_eq!(NaiveDate::from_ymd(2015, 1, 1).with_ordinal0(365), None); // 2015 had only 365 days assert_eq!(NaiveDate::from_ymd(2016, 1, 1).with_ordinal0(59), Some(NaiveDate::from_ymd(2016, 2, 29))); assert_eq!(NaiveDate::from_ymd(2016, 1, 1).with_ordinal0(365), Some(NaiveDate::from_ymd(2016, 12, 31)));
fn year_ce(&self) -> (bool, u32)
[src]
fn num_days_from_ce(&self) -> i32
[src]
impl Datelike for NaiveDateTime
[src]
fn year(&self) -> i32
[src]
Returns the year number in the calendar date.
See also the NaiveDate::year
method.
Example
use chrono::{NaiveDate, NaiveDateTime, Datelike}; let dt: NaiveDateTime = NaiveDate::from_ymd(2015, 9, 25).and_hms(12, 34, 56); assert_eq!(dt.year(), 2015);
fn month(&self) -> u32
[src]
Returns the month number starting from 1.
The return value ranges from 1 to 12.
See also the NaiveDate::month
method.
Example
use chrono::{NaiveDate, NaiveDateTime, Datelike}; let dt: NaiveDateTime = NaiveDate::from_ymd(2015, 9, 25).and_hms(12, 34, 56); assert_eq!(dt.month(), 9);
fn month0(&self) -> u32
[src]
Returns the month number starting from 0.
The return value ranges from 0 to 11.
See also the NaiveDate::month0
method.
Example
use chrono::{NaiveDate, NaiveDateTime, Datelike}; let dt: NaiveDateTime = NaiveDate::from_ymd(2015, 9, 25).and_hms(12, 34, 56); assert_eq!(dt.month0(), 8);
fn day(&self) -> u32
[src]
Returns the day of month starting from 1.
The return value ranges from 1 to 31. (The last day of month differs by months.)
See also the NaiveDate::day
method.
Example
use chrono::{NaiveDate, NaiveDateTime, Datelike}; let dt: NaiveDateTime = NaiveDate::from_ymd(2015, 9, 25).and_hms(12, 34, 56); assert_eq!(dt.day(), 25);
fn day0(&self) -> u32
[src]
Returns the day of month starting from 0.
The return value ranges from 0 to 30. (The last day of month differs by months.)
See also the NaiveDate::day0
method.
Example
use chrono::{NaiveDate, NaiveDateTime, Datelike}; let dt: NaiveDateTime = NaiveDate::from_ymd(2015, 9, 25).and_hms(12, 34, 56); assert_eq!(dt.day0(), 24);
fn ordinal(&self) -> u32
[src]
Returns the day of year starting from 1.
The return value ranges from 1 to 366. (The last day of year differs by years.)
See also the NaiveDate::ordinal
method.
Example
use chrono::{NaiveDate, NaiveDateTime, Datelike}; let dt: NaiveDateTime = NaiveDate::from_ymd(2015, 9, 25).and_hms(12, 34, 56); assert_eq!(dt.ordinal(), 268);
fn ordinal0(&self) -> u32
[src]
Returns the day of year starting from 0.
The return value ranges from 0 to 365. (The last day of year differs by years.)
See also the NaiveDate::ordinal0
method.
Example
use chrono::{NaiveDate, NaiveDateTime, Datelike}; let dt: NaiveDateTime = NaiveDate::from_ymd(2015, 9, 25).and_hms(12, 34, 56); assert_eq!(dt.ordinal0(), 267);
fn weekday(&self) -> Weekday
[src]
Returns the day of week.
See also the NaiveDate::weekday
method.
Example
use chrono::{NaiveDate, NaiveDateTime, Datelike, Weekday}; let dt: NaiveDateTime = NaiveDate::from_ymd(2015, 9, 25).and_hms(12, 34, 56); assert_eq!(dt.weekday(), Weekday::Fri);
fn iso_week(&self) -> IsoWeek
[src]
fn with_year(&self, year: i32) -> Option<NaiveDateTime>
[src]
Makes a new NaiveDateTime
with the year number changed.
Returns None
when the resulting NaiveDateTime
would be invalid.
See also the
NaiveDate::with_year
method.
Example
use chrono::{NaiveDate, NaiveDateTime, Datelike}; let dt: NaiveDateTime = NaiveDate::from_ymd(2015, 9, 25).and_hms(12, 34, 56); assert_eq!(dt.with_year(2016), Some(NaiveDate::from_ymd(2016, 9, 25).and_hms(12, 34, 56))); assert_eq!(dt.with_year(-308), Some(NaiveDate::from_ymd(-308, 9, 25).and_hms(12, 34, 56)));
fn with_month(&self, month: u32) -> Option<NaiveDateTime>
[src]
Makes a new NaiveDateTime
with the month number (starting from 1) changed.
Returns None
when the resulting NaiveDateTime
would be invalid.
See also the
NaiveDate::with_month
method.
Example
use chrono::{NaiveDate, NaiveDateTime, Datelike}; let dt: NaiveDateTime = NaiveDate::from_ymd(2015, 9, 30).and_hms(12, 34, 56); assert_eq!(dt.with_month(10), Some(NaiveDate::from_ymd(2015, 10, 30).and_hms(12, 34, 56))); assert_eq!(dt.with_month(13), None); // no month 13 assert_eq!(dt.with_month(2), None); // no February 30
fn with_month0(&self, month0: u32) -> Option<NaiveDateTime>
[src]
Makes a new NaiveDateTime
with the month number (starting from 0) changed.
Returns None
when the resulting NaiveDateTime
would be invalid.
See also the
NaiveDate::with_month0
method.
Example
use chrono::{NaiveDate, NaiveDateTime, Datelike}; let dt: NaiveDateTime = NaiveDate::from_ymd(2015, 9, 30).and_hms(12, 34, 56); assert_eq!(dt.with_month0(9), Some(NaiveDate::from_ymd(2015, 10, 30).and_hms(12, 34, 56))); assert_eq!(dt.with_month0(12), None); // no month 13 assert_eq!(dt.with_month0(1), None); // no February 30
fn with_day(&self, day: u32) -> Option<NaiveDateTime>
[src]
Makes a new NaiveDateTime
with the day of month (starting from 1) changed.
Returns None
when the resulting NaiveDateTime
would be invalid.
See also the
NaiveDate::with_day
method.
Example
use chrono::{NaiveDate, NaiveDateTime, Datelike}; let dt: NaiveDateTime = NaiveDate::from_ymd(2015, 9, 8).and_hms(12, 34, 56); assert_eq!(dt.with_day(30), Some(NaiveDate::from_ymd(2015, 9, 30).and_hms(12, 34, 56))); assert_eq!(dt.with_day(31), None); // no September 31
fn with_day0(&self, day0: u32) -> Option<NaiveDateTime>
[src]
Makes a new NaiveDateTime
with the day of month (starting from 0) changed.
Returns None
when the resulting NaiveDateTime
would be invalid.
See also the
NaiveDate::with_day0
method.
Example
use chrono::{NaiveDate, NaiveDateTime, Datelike}; let dt: NaiveDateTime = NaiveDate::from_ymd(2015, 9, 8).and_hms(12, 34, 56); assert_eq!(dt.with_day0(29), Some(NaiveDate::from_ymd(2015, 9, 30).and_hms(12, 34, 56))); assert_eq!(dt.with_day0(30), None); // no September 31
fn with_ordinal(&self, ordinal: u32) -> Option<NaiveDateTime>
[src]
Makes a new NaiveDateTime
with the day of year (starting from 1) changed.
Returns None
when the resulting NaiveDateTime
would be invalid.
See also the
NaiveDate::with_ordinal
method.
Example
use chrono::{NaiveDate, NaiveDateTime, Datelike}; let dt: NaiveDateTime = NaiveDate::from_ymd(2015, 9, 8).and_hms(12, 34, 56); assert_eq!(dt.with_ordinal(60), Some(NaiveDate::from_ymd(2015, 3, 1).and_hms(12, 34, 56))); assert_eq!(dt.with_ordinal(366), None); // 2015 had only 365 days let dt: NaiveDateTime = NaiveDate::from_ymd(2016, 9, 8).and_hms(12, 34, 56); assert_eq!(dt.with_ordinal(60), Some(NaiveDate::from_ymd(2016, 2, 29).and_hms(12, 34, 56))); assert_eq!(dt.with_ordinal(366), Some(NaiveDate::from_ymd(2016, 12, 31).and_hms(12, 34, 56)));
fn with_ordinal0(&self, ordinal0: u32) -> Option<NaiveDateTime>
[src]
Makes a new NaiveDateTime
with the day of year (starting from 0) changed.
Returns None
when the resulting NaiveDateTime
would be invalid.
See also the
NaiveDate::with_ordinal0
method.
Example
use chrono::{NaiveDate, NaiveDateTime, Datelike}; let dt: NaiveDateTime = NaiveDate::from_ymd(2015, 9, 8).and_hms(12, 34, 56); assert_eq!(dt.with_ordinal0(59), Some(NaiveDate::from_ymd(2015, 3, 1).and_hms(12, 34, 56))); assert_eq!(dt.with_ordinal0(365), None); // 2015 had only 365 days let dt: NaiveDateTime = NaiveDate::from_ymd(2016, 9, 8).and_hms(12, 34, 56); assert_eq!(dt.with_ordinal0(59), Some(NaiveDate::from_ymd(2016, 2, 29).and_hms(12, 34, 56))); assert_eq!(dt.with_ordinal0(365), Some(NaiveDate::from_ymd(2016, 12, 31).and_hms(12, 34, 56)));