Struct CustomWeek

Source
pub struct CustomWeek { /* private fields */ }
Expand description

Custom week implementation.

PartialOrd and Ord are not implemented, because we do not have a natural ordering for weeks with different specifications. Week start could be recalculated from year, week and specification: it is only stored by convenience for succ, pred, and contains functions.

Implementations§

Source§

impl CustomWeek

Source

pub fn year(&self) -> i32

Source

pub fn week(&self) -> u32

Source

pub fn week0(&self) -> u32

Week number in year (0 based).

Source

pub fn week_start(&self) -> NaiveDate

Source

pub fn specification(&self) -> WeekSpecification

Source

pub fn succ(&self) -> CustomWeek

The next week according to the same specification.

Source

pub fn pred(&self) -> CustomWeek

The previous week according to the same specification.

Source

pub fn contains(&self, date: NaiveDate) -> bool

Verify if the given date is in the current week.

Source

pub fn format(&self, fmt: &str) -> String

Very naive week formatting

Formatters are inspired by chrono::format::strftime.

Spec.ExampleDescription
DATE SPECIFIERS:
%Y2001The week year, zero-padded to 4 digits.
%C20The week year divided by 100, zero-padded to 2 digits.
%y01The week year modulo 100, zero-padded to 2 digits.
%W27Week number, zero-padded to 2 digits.
—–––––––––––––––––––––––––––––––––––
use chrono::NaiveDate;
use chrono_ext::{WeekSpecification, CustomWeek};

let french_theater_week: WeekSpecification = WeekSpecification::french_theater_week();

let french_theater_dow_2016_53 = NaiveDate::from_ymd(2017, 1, 3);
let week = french_theater_week.week_from_date(french_theater_dow_2016_53);

assert_eq!("Year 2016", week.format("Year %Y"));
assert_eq!("Year 2016", week.format("Year %C%y"));
assert_eq!("Week 53", week.format("Week %W"));
assert_eq!("S1653", week.format("S%y%W"));

Trait Implementations§

Source§

impl Clone for CustomWeek

Source§

fn clone(&self) -> CustomWeek

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for CustomWeek

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for CustomWeek

Source§

fn eq(&self, other: &CustomWeek) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for CustomWeek

Source§

impl StructuralPartialEq for CustomWeek

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.